21 #if !defined DCT_ace_generic_config_h && defined FD_SETSIZE
27 #include <TENA/Middleware/config.h>
28 #include <TENA/Middleware/SDO/ID.h>
32 #include <vl/globalObjectDesignator.h>
33 #include <vl/baseExerciseConn.h>
34 #include <vl/eventId.h>
38 class DtDynamicLibrary;
43 namespace DtTenaBroker
49 class DtExerciseConnInitializer;
56 class DT_DLL_VLTENA DtExerciseConn :
public DtBaseExerciseConn
61 typedef DtLromMapper* (*DtLromMapperCreator)(
void* usr);
64 typedef void (*DtLromMapperDeletor)(DtLromMapper*);
71 DtExerciseConn(
const DtExerciseConnInitializer& init);
76 DtExerciseConn(
int site,
int app, DtLromMapper* mapper,
const DtString& execName,
77 const DtString& sessionName,
const DtString& orbDefaultInitRef,
bool useAmo =
true,
78 TENA::Middleware::CommunicationProperties transport = TENA::Middleware::Reliable);
81 virtual ~DtExerciseConn();
84 virtual TENA::Middleware::SessionPtr sessionPtr();
88 virtual void send(
const DtStateMsg& msg );
92 virtual void sendStamped(
const DtStateMsg& msg );
96 virtual void send( const ::DtInteraction& msg );
100 virtual void sendStamped( const ::DtInteraction& msg );
103 virtual void send(
const DtInteraction& msg );
106 virtual void sendStamped(
const DtInteraction& msg );
112 virtual int siteId()
const;
115 virtual int applicationId()
const;
122 virtual void drainInput(
int usecs = 20);
125 virtual void addInteractionCallback(
const DtString& name,
126 DtReceiveInteractionCb cb,
void* userData);
129 virtual void removeInteractionCallback(
const DtString& name,
130 DtReceiveInteractionCb cb,
void* userData);
133 virtual void applyInteractionCallback(
const DtString& name,
134 DtInteraction* interaction);
137 virtual DtLromMapper *lromMapper();
141 virtual const DtGlobalObjectDesignator& nextMessageId();
144 virtual const DtEventId& nextEventId();
148 virtual void setReflecting();
151 virtual bool reflecting()
const;
155 virtual DtAmoPublisher* amoPublisher();
160 virtual void setTransportType(TENA::Middleware::CommunicationProperties transportType);
163 virtual TENA::Middleware::CommunicationProperties transportType()
const;
168 virtual void incrementNumberOfObjectsServed();
173 virtual void decrementNumberOfObjectsServed();
178 virtual void incrementNumberOfProxies();
183 virtual void decrementNumberOfProxies();
190 void initializeLromMapper(
const DtString& lromMapperLibName,
void* initData);
192 void getFuncsFromSharedLib(DtDynamicLibrary& dso, DtLromMapperCreator* creator,
193 DtLromMapperDeletor* deletor);
198 DtExerciseConn(
const DtExerciseConn& other);
201 DtExerciseConn& operator=(
const DtExerciseConn& other);
205 TENA::Middleware::RuntimePtr myRuntimePtr;
206 TENA::Middleware::ExecutionPtr myExecutionPtr;
207 TENA::Middleware::SessionPtr mySessionPtr;
208 TENA::Middleware::CommunicationProperties myTransportType;
213 DtGlobalObjectDesignator myCurrentMessageId;
214 DtEventId myCurrentEventId;
217 DtInteractionCallbackManager myInteractionCallbackManager;
218 DtLromMapper *myLromMapper;
219 DtLromMapperCreator myDsoCreator;
220 DtLromMapperDeletor myDsoDeletor;
221 bool myUseLromMapperDeletor;
223 DtAmoPublisher* myAmoPublisher;
224 DtTime myLastAmoUpdate;
226 DtDynamicLibrary* myLromMapperDso;