[PowerSimCore / models] 포인터 기반 전력망 컴포넌트 레지스트리 재설계
• 1 min read
기존 값 복사 기반 장비 저장 구조에서 일어날 수 있는 댕글링 포인터 현상을 방지하기 위해 models 스코프 전력 시스템 레지스트리를 개편했다. 복잡한 기기 간 연결 관계를 효율적으로 추적할 수 있도록 포인터 기반 토폴로지 맵을 적용했다.
중앙 집중형 장비 데이터 딕셔너리 및 연결 매핑 구조 개선
PowerSystem내 기존std::vector기반 기기 저장소를std::map과std::shared_ptr을 조합한 딕셔너리 구조로 변경했다.- 포인터 기반 설계 도입으로 컴포넌트 복사에 따른 메모리 오버헤드를 제거하고 다형성 객체 메모리 접근 안전성을 확보했다.
- 송전 선로에 차단기와 변류기 식별자를 매핑하는
attachCBToLine및attachCTToLine메서드를 도입해 토폴로지 연동 기능을 추가했다. CT와 차단기를 논리적으로 연동하는connectRelay인터페이스를 구현해 보호 계전 장비 간 상호 연결 관계를 표현했다.getConnectedEquipment메서드를 수정해 특정 모선(Bus)에 연결된 모든 기기를 포인터 기반 구조에 맞춰 정확히 탐색하도록 탐색 로직을 개선했다.- 모선 ID 또는 기기 명칭을 키로 지정해 탐색할 수 있도록 레지스트리 조회 메서드를 재작성했다.