< 이전 | 다음 >

학습 7: 공개자 엔티티의 도메인 참가자 추가

이 학습에서는 MyPublisher 공개자 엔티티의 도메인 참가자를 추가합니다.
  1. PublisherPkg 패키지를 마우스 오른쪽 단추로 클릭하고 새로 추가 > DDS > 도메인 참가자를 선택하십시오.
  2. 도메인 참가자 요소의 기능 창을 열고 다음 정보를 입력하십시오.
    1. 일반 탭에서 요소의 이름을 MyPublishingApplication으로 지정하십시오. 기본적으로 동일한 이름이 디렉토리 필드에도 입력되며, 유형 영역에서는 실행 파일이 선택됩니다.
    2. 범위 탭에서 PublisherPkg를 선택하십시오. 다른 선택란이 선택된 경우에는 선택 취소하십시오. 확인을 클릭하십시오.
  3. MyPublishingApplication 도메인 참가자의 구성을 지정하십시오.
    1. MyPublishingApplication 아래 DefaultConfig 구성의 기능 창을 여십시오.
    2. 초기화 탭에서 PublisherPkg를 펼치고 MyPublisher를 선택하십시오.
    3. 설정 탭에서 MSVC9 또는 Linux 환경을 선택한 후 확인을 클릭하십시오.
  4. MyPublishingApplication 도메인 참가자에서 MyTopicStructLib 도메인 참가자로 종속성을 추가하십시오.
    1. MyPublishingApplication을 마우스 오른쪽 단추로 클릭하고 새로 추가 > 관계 > 종속성을 선택하십시오.
    2. 종속성 추가 창에서 TopicsPkg의 MyTopicStructLib를 선택하십시오.
  5. 브라우저에서 종속성의 기능 창을 열고 다음 정보를 입력하십시오.
    1. 일반 탭의 스테레오타입 필드에서 PredefinedTypes에서 사용을 선택하십시오.
    2. 사용 필드가 스펙으로 설정되었는지 확인한 후 확인을 클릭하십시오. 이 종속성을 통해 MyTopicStruct가 등록되고 MyTopic이 작성되는 동안 MyTopicStructLib의 기능이 사용될 수 있습니다. 또한 이 종속성은 MyTopicStructLib에서 MyDataWriter 작성 기능을 제공합니다.
  6. 코드 생성: 코드 > 생성 > DefaultConfig를 선택하십시오.
    주: 이 학습에서는 사용자가 PublisherPkg를 작성했으므로 DefaultConfig 구성이 활성 구성으로 이미 설정되어 있습니다.
  7. 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 생성자에 있는 다음 조치를 확인할 수 있습니다.

마지막 두 요소는 도메인 참가자 컴포넌트의 범위에 있는 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 파일에서 생성되었습니다.

학습 체크포인트

이 학습에서는 MyPublisher 공개자 엔티티에 도메인 참가자를 추가하는 방법에 대해 살펴보았습니다.
다음 학습에서는 MyTopic 토픽 요소에 데이터를 공개하도록 동일한 코드를 추가합니다.
< 이전 | 다음 >

피드백