7 #ifndef DtVrlFederateAmbassador_H_
8 #define DtVrlFederateAmbassador_H_
51 throw( RTI::FederateInternalError );
74 virtual
void addReflectAttributeValuesCb( RTI::ObjectHandle
id,
76 virtual
void removeReflectAttributeValuesCb( RTI::ObjectHandle
id,
81 virtual
void addDiscoverObjectCb( RTI::ObjectClassHandle hand,
83 virtual
void removeDiscoverObjectCb( RTI::ObjectClassHandle hand,
88 virtual
void addRemoveObjectCb( RTI::ObjectHandle
id,
90 virtual
void removeRemoveObjectCb( RTI::ObjectHandle
id,
95 virtual
void addStartRegCb( RTI::ObjectClassHandle hand,
97 virtual
void removeStartRegCb( RTI::ObjectClassHandle hand,
102 virtual
void addStopRegCb( RTI::ObjectClassHandle hand,
104 virtual
void removeStopRegCb( RTI::ObjectClassHandle hand,
109 virtual
void addUpdatesOnCb( RTI::ObjectHandle hand,
111 virtual
void removeUpdatesOnCb( RTI::ObjectHandle hand,
116 virtual
void addUpdatesOffCb( RTI::ObjectHandle hand,
118 virtual
void removeUpdatesOffCb( RTI::ObjectHandle hand,
123 virtual
void addStartInteractionsCb( RTI::InteractionClassHandle hand,
125 virtual
void removeStartInteractionsCb( RTI::InteractionClassHandle hand,
130 virtual
void addStopInteractionsCb( RTI::InteractionClassHandle hand,
132 virtual
void removeStopInteractionsCb( RTI::InteractionClassHandle hand,
137 virtual
void addReceiveInteractionCb( RTI::InteractionClassHandle hand,
139 virtual
void removeReceiveInteractionCb( RTI::InteractionClassHandle hand,
144 virtual
void addTimeAdvanceGrantCb(
DtFedTimeCb cb,
void* usr );
145 virtual
void removeTimeAdvanceGrantCb(
DtFedTimeCb cb,
void* usr );
149 virtual
void addTimeRegulationEnabledCb(
DtFedTimeCb cb,
void* usr );
150 virtual
void removeTimeRegulationEnabledCb(
DtFedTimeCb cb,
void* usr );
154 virtual
void addTimeConstrainedEnabledCb(
DtFedTimeCb cb,
void* usr );
155 virtual
void removeTimeConstrainedEnabledCb(
DtFedTimeCb cb,
void* usr );
157 virtual
void setRemoveObjectOnAttOutOfScope(
bool remove);
158 virtual
bool removeObjectOnAttOutOfScope() const;
168 virtual
void timeAdvanceGrant( const RTI::
FedTime& theTime )
169 throw( RTI::InvalidFederationTime,
170 RTI::TimeAdvanceWasNotInProgress,
171 RTI::FederateInternalError );
173 virtual
void timeRegulationEnabled( const RTI::
FedTime& theTime )
174 throw( RTI::InvalidFederationTime,
175 RTI::EnableTimeRegulationWasNotPending,
176 RTI::FederateInternalError );
178 virtual
void timeConstrainedEnabled( const RTI::
FedTime& theTime )
179 throw( RTI::InvalidFederationTime,
180 RTI::EnableTimeConstrainedWasNotPending,
181 RTI::FederateInternalError );
183 virtual
void startRegistrationForObjectClass(
184 RTI::ObjectClassHandle theClass )
185 throw( RTI::ObjectClassNotPublished,
186 RTI::FederateInternalError );
188 virtual
void stopRegistrationForObjectClass(
189 RTI::ObjectClassHandle theClass )
190 throw( RTI::ObjectClassNotPublished,
191 RTI::FederateInternalError );
193 virtual
void turnInteractionsOn(
194 RTI::InteractionClassHandle theHandle )
195 throw( RTI::InteractionClassNotPublished,
196 RTI::FederateInternalError );
198 virtual
void turnInteractionsOff(
199 RTI::InteractionClassHandle theHandle )
200 throw( RTI::InteractionClassNotPublished,
201 RTI::FederateInternalError );
203 virtual
void discoverObjectInstance(
204 RTI::ObjectHandle theObject,
205 RTI::ObjectClassHandle theObjectClass,
206 const
char* theObjectName )
207 throw( RTI::CouldNotDiscover,
208 RTI::ObjectClassNotKnown,
209 RTI::FederateInternalError );
211 virtual
void reflectAttributeValues(
212 RTI::ObjectHandle theObject,
213 const RTI::AttributeHandleValuePairSet& theAttributes,
216 RTI::EventRetractionHandle theHandle )
217 throw( RTI::ObjectNotKnown,
218 RTI::AttributeNotKnown,
219 RTI::FederateOwnsAttributes,
220 RTI::InvalidFederationTime,
221 RTI::FederateInternalError );
223 virtual
void reflectAttributeValues(
224 RTI::ObjectHandle theObject,
225 const RTI::AttributeHandleValuePairSet& theAttributes,
227 throw( RTI::ObjectNotKnown,
228 RTI::AttributeNotKnown,
229 RTI::FederateOwnsAttributes,
230 RTI::FederateInternalError);
232 virtual
void receiveInteraction(
233 RTI::InteractionClassHandle theInteraction,
234 const RTI::ParameterHandleValuePairSet& theParameters,
237 RTI::EventRetractionHandle theHandle )
238 throw( RTI::InteractionClassNotKnown,
239 RTI::InteractionParameterNotKnown,
240 RTI::InvalidFederationTime,
241 RTI::FederateInternalError );
243 virtual
void receiveInteraction(
244 RTI::InteractionClassHandle theInteraction,
245 const RTI::ParameterHandleValuePairSet& theParameters,
247 throw( RTI::InteractionClassNotKnown,
248 RTI::InteractionParameterNotKnown,
249 RTI::FederateInternalError );
251 virtual
void removeObjectInstance(
252 RTI::ObjectHandle theObject,
255 RTI::EventRetractionHandle theHandle )
256 throw( RTI::ObjectNotKnown,
257 RTI::InvalidFederationTime,
258 RTI::FederateInternalError );
260 virtual
void removeObjectInstance(
261 RTI::ObjectHandle theObject,
263 throw( RTI::ObjectNotKnown,
264 RTI::FederateInternalError );
266 virtual
void attributesInScope (
267 RTI::ObjectHandle theObject,
268 const RTI::AttributeHandleSet& theAttributes)
269 throw ( RTI::ObjectNotKnown,
270 RTI::AttributeNotKnown,
271 RTI::FederateInternalError);
273 virtual
void attributesOutOfScope (
274 RTI::ObjectHandle theObject,
275 const RTI::AttributeHandleSet& theAttributes)
276 throw ( RTI::ObjectNotKnown,
277 RTI::AttributeNotKnown,
278 RTI::FederateInternalError);
281 virtual
void provideAttributeValueUpdate(
282 RTI::ObjectHandle theObject,
283 const RTI::AttributeHandleSet& theAttributes )
284 throw( RTI::ObjectNotKnown,
285 RTI::AttributeNotKnown,
286 RTI::AttributeNotOwned,
287 RTI::FederateInternalError );
289 virtual
void turnUpdatesOnForObjectInstance(
290 RTI::ObjectHandle theObject,
291 const RTI::AttributeHandleSet& theAttributes )
292 throw( RTI::ObjectNotKnown,
293 RTI::AttributeNotOwned,
294 RTI::FederateInternalError );
296 virtual
void turnUpdatesOffForObjectInstance(
297 RTI::ObjectHandle theObject,
298 const RTI::AttributeHandleSet& theAttributes )
299 throw( RTI::ObjectNotKnown,
300 RTI::AttributeNotOwned,
301 RTI::FederateInternalError );
304 virtual
void requestAttributeOwnershipAssumption(
305 RTI::ObjectHandle theObject,
306 const RTI::AttributeHandleSet& offeredAttributes,
308 throw( RTI::ObjectNotKnown,
309 RTI::AttributeNotKnown,
310 RTI::AttributeAlreadyOwned,
311 RTI::AttributeNotPublished,
312 RTI::FederateInternalError );
314 virtual
void attributeOwnershipDivestitureNotification(
315 RTI::ObjectHandle theObject,
316 const RTI::AttributeHandleSet& releasedAttributes )
317 throw( RTI::ObjectNotKnown,
318 RTI::AttributeNotKnown,
319 RTI::AttributeNotOwned,
320 RTI::AttributeDivestitureWasNotRequested,
321 RTI::FederateInternalError );
323 virtual
void attributeOwnershipAcquisitionNotification(
324 RTI::ObjectHandle theObject,
325 const RTI::AttributeHandleSet& securedAttributes )
326 throw( RTI::ObjectNotKnown,
327 RTI::AttributeNotKnown,
328 RTI::AttributeAcquisitionWasNotRequested,
329 RTI::AttributeAlreadyOwned,
330 RTI::AttributeNotPublished,
331 RTI::FederateInternalError );
333 virtual
void attributeOwnershipUnavailable(
334 RTI::ObjectHandle theObject,
335 const RTI::AttributeHandleSet& theAttributes )
336 throw( RTI::ObjectNotKnown,
337 RTI::AttributeNotKnown,
338 RTI::AttributeAlreadyOwned,
339 RTI::AttributeAcquisitionWasNotRequested,
340 RTI::FederateInternalError );
342 virtual
void requestAttributeOwnershipRelease(
343 RTI::ObjectHandle theObject,
344 const RTI::AttributeHandleSet& candidateAttributes,
346 throw( RTI::ObjectNotKnown,
347 RTI::AttributeNotKnown,
348 RTI::AttributeNotOwned,
349 RTI::FederateInternalError );
351 virtual
void confirmAttributeOwnershipAcquisitionCancellation(
352 RTI::ObjectHandle theObject,
353 const RTI::AttributeHandleSet& theAttributes )
354 throw( RTI::ObjectNotKnown,
355 RTI::AttributeNotKnown,
356 RTI::AttributeAlreadyOwned,
357 RTI::AttributeAcquisitionWasNotCanceled,
358 RTI::FederateInternalError );
360 virtual
void informAttributeOwnership(
361 RTI::ObjectHandle theObject,
362 RTI::AttributeHandle theAttribute,
363 RTI::FederateHandle theOwner )
364 throw( RTI::ObjectNotKnown,
365 RTI::AttributeNotKnown,
366 RTI::FederateInternalError );
368 virtual
void attributeIsNotOwned(
369 RTI::ObjectHandle theObject,
370 RTI::AttributeHandle theAttribute )
371 throw( RTI::ObjectNotKnown,
372 RTI::AttributeNotKnown,
373 RTI::FederateInternalError );
375 virtual
void attributeOwnedByRTI(
376 RTI::ObjectHandle theObject,
377 RTI::AttributeHandle theAttribute )
378 throw( RTI::ObjectNotKnown,
379 RTI::AttributeNotKnown,
380 RTI::FederateInternalError);
383 virtual
void synchronizationPointRegistrationSucceeded( const
char* label )
384 throw( RTI::FederateInternalError );
386 virtual
void synchronizationPointRegistrationFailed( const
char* label )
387 throw( RTI::FederateInternalError );
389 virtual
void federationSynchronized( const
char* label )
390 throw( RTI::FederateInternalError );
392 virtual
void announceSynchronizationPoint(
393 const
char* label, const
char* tag )
394 throw( RTI::FederateInternalError );
397 virtual
void addSynchPointRegSucceededCb(const
DtString& label,
402 virtual
void removeSynchPointRegSucceededCb(const
DtString& label,
407 virtual
void addSynchPointRegFailedCb(const
DtString& label,
412 virtual
void removeSynchPointRegFailedCb(const
DtString& label,
417 virtual
void addFederationSynchedCb(const
DtString& label,
422 virtual
void removeFederationSynchedCb(const
DtString& label,
427 virtual
void addAnnounceSynchPointCb(const
DtString& label,
432 virtual
void removeAnnounceSynchPointCb(const
DtString& label,
439 virtual const RTI::Region* getRegionFromAttributes(
440 const RTI::AttributeHandleValuePairSet& theAttributes ) const;
442 virtual const RTI::Region* getRegionFromParameters(
443 const RTI::ParameterHandleValuePairSet& theAttributes ) const;
472 static void attributesOutOfScopeCb(
void* usr);
474 virtual void processAttributesOutOfScope(RTI::ObjectHandle handle);
505 virtual void applyFedsSynchedCallbacks(
const char* label);
506 virtual void applyRegistrationSucceededCallbacks(
const char* label);
507 virtual void applyRegistrationFailedCallbacks(
const char* label);
510 virtual bool applyAnnounceCallbacks(
const char* label,
const char* tag);