16 #include <matrix/vlTaitBryan.h>
17 #include <matrix/vlVector.h>
18 #include <vlutil/vlString.h>
19 #include <vlutil/vlTime.h>
26 #include "ndds/ndds_cpp.h"
29 #include <ccpp_WaitSet.h>
31 #include <ccpp_DomainParticipantFactory.h>
35 class DtEntityStateRepository;
37 namespace MAKVrExchange
43 class DtReflectedEntity;
44 class DtDdsDomainConnInitializer;
58 virtual void drainInput( DtTime timeout = -1 );
60 virtual void send(
const DtEntityStateRepository& entity );
61 virtual void send( simpleOM::simpleFireInteraction& fireInter );
62 virtual void send( simpleOM::simpleDetonationInteraction& detInter );
64 virtual void sendFinal(
const DtEntityStateRepository& entity );
66 virtual DtClock* clock();
68 virtual void addEntityAdditionCallback(
70 virtual void removeEntityAdditionCallback(
73 virtual void addEntityRemovalCallback(
75 virtual void removeEntityRemovalCallback(
78 virtual void addDetonationCallback(
80 virtual void removeDetonationCallback(
83 virtual void addWeaponFireCallback(
85 virtual void removeWeaponFireCallback(
93 template <
typename ReaderType>
94 unsigned int readAndProcess( ReaderType* reader );
96 virtual bool encodeEntityState(
const DtEntityStateRepository& esr,
97 simpleOM::simpleBaseEntity& instanceData );
98 virtual bool decodeEntityState(
const simpleOM::simpleBaseEntity& instanceData,
99 DtEntityStateRepository* esr );
102 virtual void removeReflectedObject(
const char*
id );
110 typedef std::map<DDS_Condition*,DDS_DataReader*> DataReaderMap;
113 DDS_DomainId_t myDomain;
115 DDSDomainParticipantFactory* myDomParticipantFactory;
116 DDSDomainParticipant* myDomParticipant;
118 DDSSubscriber* mySub;
119 DDS_PublisherQos myPubQos;
120 DDS_SubscriberQos mySubQos;
122 DDS_SampleInfoSeq myInfoList;
123 DDSWaitSet* myWaitSet;
126 simpleOM::simpleBaseEntityTypeSupport* myBaseTopicDataType;
127 simpleOM::simpleBaseEntityDataReader* myBaseEntityReader;
128 simpleOM::simpleBaseEntityDataWriter* myBaseEntityWriter;
129 DDSStatusCondition* myBaseEntityStatusCond;
130 DDSTopic* myBaseTopic;
132 simpleOM::simpleDetonationInteractionTypeSupport* myDetTopicDataType;
133 simpleOM::simpleDetonationInteractionDataReader* myDetReader;
134 simpleOM::simpleDetonationInteractionDataWriter* myDetWriter;
135 DDSStatusCondition* myDetStatusCond;
136 DDSTopic* myDetTopic;
138 simpleOM::simpleFireInteractionTypeSupport* myFireTopicDataType;
139 simpleOM::simpleFireInteractionDataReader* myFireReader;
140 simpleOM::simpleFireInteractionDataWriter* myFireWriter;
141 DDSStatusCondition* myFireStatusCond;
142 DDSTopic* myFireTopic;
144 typedef std::pair<simpleOM::simpleBaseEntity*,DDS_InstanceHandle_t> InstanceHandlePair;
145 #elif DtDDS_OPENSPLICE
146 typedef std::map<DDS::Condition*,DDS::DataReader*> DataReaderMap;
149 DDS::DomainId_t myDomain;
150 DDS::DomainParticipantFactory_ptr myDomParticipantFactory;
151 DDS::DomainParticipant_ptr myDomParticipant;
152 DDS::Publisher_ptr myPub;
153 DDS::Subscriber_ptr mySub;
154 DDS::PublisherQos myPubQos;
155 DDS::SubscriberQos mySubQos;
156 DDS::SampleInfoSeq_var myInfoList;
157 DDS::WaitSet myWaitSet;
160 simpleOM::simpleBaseEntityTypeSupport myBaseTopicDataType;
161 simpleOM::simpleBaseEntityDataReader_ptr myBaseEntityReader;
162 simpleOM::simpleBaseEntityDataWriter_ptr myBaseEntityWriter;
163 DDS::StatusCondition_ptr myBaseEntityStatusCond;
164 DDS::Topic_ptr myBaseTopic;
166 simpleOM::simpleDetonationInteractionTypeSupport myDetTopicDataType;
167 simpleOM::simpleDetonationInteractionDataReader_ptr myDetReader;
168 simpleOM::simpleDetonationInteractionDataWriter_ptr myDetWriter;
169 DDS::StatusCondition_ptr myDetStatusCond;
170 DDS::Topic_ptr myDetTopic;
172 simpleOM::simpleFireInteractionTypeSupport myFireTopicDataType;
173 simpleOM::simpleFireInteractionDataReader_ptr myFireReader;
174 simpleOM::simpleFireInteractionDataWriter_ptr myFireWriter;
175 DDS::StatusCondition_ptr myFireStatusCond;
176 DDS::Topic_ptr myFireTopic;
178 typedef std::pair<simpleOM::simpleBaseEntity*,DDS::InstanceHandle_t> InstanceHandlePair;