이 학습에서는 MyPublisher 공개자 엔티티의 도메인 참가자를 추가합니다.
- PublisherPkg 패키지를 마우스 오른쪽 단추로 클릭하고
를 선택하십시오.
- 도메인 참가자 요소의 기능 창을 열고 다음 정보를 입력하십시오.
- 일반 탭에서 요소의 이름을 MyPublishingApplication으로 지정하십시오. 기본적으로 동일한 이름이 디렉토리 필드에도
입력되며, 유형 영역에서는 실행 파일이
선택됩니다.
- 범위 탭에서 PublisherPkg를 선택하십시오. 다른 선택란이 선택된 경우에는 선택 취소하십시오.
확인을 클릭하십시오.
- MyPublishingApplication 도메인 참가자의 구성을 지정하십시오.
- MyPublishingApplication 아래 DefaultConfig
구성의 기능 창을 여십시오.
- 초기화 탭에서 PublisherPkg를 펼치고
MyPublisher를 선택하십시오.
- 설정 탭에서 MSVC9 환경을 선택한 후
확인을 클릭하십시오.
- MyPublishingApplication 도메인 참가자에서 MyTopicStructLib
도메인 참가자로 종속성을 추가하십시오.
- MyPublishingApplication을 마우스 오른쪽 단추로 클릭하고
을 선택하십시오.
- 종속성 추가 창에서 TopicsPkg의
MyTopicStructLib를 선택하십시오.
- 브라우저에서 종속성의 기능 창을 열고 다음 정보를 입력하십시오.
- 일반 탭의 스테레오타입 필드에서
PredefinedTypes에서 사용을 선택하십시오.
- 사용 필드가 스펙으로 설정되었는지 확인한 후
확인을 클릭하십시오. 이 종속성을 통해 MyTopicStruct가 등록되고 MyTopic이 작성되는 동안
MyTopicStructLib의 기능이 사용될 수 있습니다.
또한 이 종속성은 MyTopicStructLib에서 MyDataWriter 작성 기능을
제공합니다.
- 코드 생성: 를
선택하십시오.
주: 이 학습에서는 사용자가 PublisherPkg를 작성했으므로 DefaultConfig 구성이
활성 구성으로 이미 설정되어 있습니다.
- MyPublishingApplication 도메인 참가자 아래 DefaultConfig
구성을 마우스 오른쪽 단추로 클릭하고 구성 기본 파일 편집을 선택하십시오. 코드 생성으로 싱글톤 클래스 MyPublishingApplicationDP가 작성되었습니다.
이 클래스는 DDS::DomainParticipant 엔티티에 대한 랩퍼입니다.
이는 다음 API를 제공합니다.
- DDS::DomainParticipant* getDomainParticipant():
이 클래스의 DDS::DomainParticipant 멤버를 가져옵니다.
- DDS::TopicDescription* lookupTopicDescription(char* topicName):
DDS 표준 API 호출 DDS::DomainParticipant::lookup_topicdescription에 대한 랩퍼입니다.
- static MyPublishingApplicationDP* instance():
싱글톤 오퍼레이션을 통해 이 클래스의 싱글톤 인스턴스를 수신할 수 있습니다.
구현 기본 파일에서
MyPublishingApplicationDP 생성자에 있는
다음 조치를 확인할 수 있습니다.
- DDS::DomainParticipant 요소가 작성됨
- MyTopicStruct가 등록됨
- MyTopic이 작성됨
마지막 두 요소는 도메인 참가자 컴포넌트의
범위에 있는 MyDataWriter가 MyTopic을 업데이트하는 표기법의 결과입니다.
공개자 엔티티의 다이어그램 모양이 의미하는 대로 공개자 엔티티의
생성된 코드는 클래스입니다. 이 클래스는 새 클래스 인스턴스의 구현 중에
초기화되는 DDS::Publisher 포인터의 속성을 포함합니다. 또한
사용자가 작성한 dataWriter를 나타내는 MyTopicStructDataWriter 포인터
MyDataWriter도 포함합니다. MyTopicStructDataWriter 포인터는
도메인 참가자 컴포넌트 MyTopicStructLib에 있는 DDSMyTopicStructLib.idl
파일에서 생성된 파일에 정의됩니다.
MyPublisher 코드를 편집하는 경우, 해당 구현 중에
DDS::Publisher 요소를 작성하도록 DDS::DomainParticipant를
호출하여 DDS::DomainParticipant 멤버를 검색합니다.
또한 DDS::ReturnCode_t publishMyDataWriter(const
MyTopicStruct& data); 오퍼레이션도 찾을 수 있습니다.
이 오퍼레이션은 MyTopicStructDataWriter::write에 대한
랩퍼입니다. 이 기능은 생성된 DDSMyTopicStructLib.idl 파일에서
생성되었습니다.