MAK RTIspy API Documentation for HLA 1516
ambImp.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2011 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
8 
9 #pragma once
10 
11 #ifdef DtIFSPEC13
12 
13 #include "rtiMsConfig.h"
14 #include "ambImpBase.h"
15 #ifdef DtIFSPEC13DLC
16 #include "RTI13.h"
17 #else
18 #include "RTI.hh"
19 #endif
20 
21 #ifdef DtIFSPEC13DLC
22 #define RTI rti13
23 #endif
24 
35 class DT_DLL_LRC DtRtiAmbassadorImplementor : public DtRtiAmbassadorBaseImplementor
36 {
37 public:
38 
40  typedef DtRtiAmbassadorImplementor*
41  (*DtRtiAmbassadorImplementorCreator)(RTI::RTIambassador* topLevelAmbPtr);
42 
43 protected:
44 
46  DtRtiAmbassadorImplementor(RTI::RTIambassador* topLevelAmbPtr)
47  throw (
48  RTI::MemoryExhausted,
49  RTI::RTIinternalError);
50 
51 public:
52 
54  virtual ~DtRtiAmbassadorImplementor()
55  throw (RTI::RTIinternalError);
56 
57 private:
58 
60  DtRtiAmbassadorImplementor(DtRtiAmbassadorImplementor const& );
61 
63  DtRtiAmbassadorImplementor& operator= (DtRtiAmbassadorImplementor const& );
64 
65 public:
66 
68  virtual void createFederationExecution (
69  const char *executionName,
70  const char *FED)
71  throw (
72  RTI::FederationExecutionAlreadyExists,
73  RTI::CouldNotOpenFED,
74  RTI::ErrorReadingFED,
75  RTI::ConcurrentAccessAttempted,
76  RTI::RTIinternalError);
77 
79  virtual void destroyFederationExecution (
80  const char *executionName)
81  throw (
82  RTI::FederatesCurrentlyJoined,
83  RTI::FederationExecutionDoesNotExist,
84  RTI::ConcurrentAccessAttempted,
85  RTI::RTIinternalError);
86 
89  const char *yourName,
90  const char *executionName,
91  RTI::FederateAmbassador* federateAmbassadorReference,
92  unsigned long flags)
93  throw (
94  RTI::FederateAlreadyExecutionMember,
95  RTI::FederationExecutionDoesNotExist,
96  RTI::CouldNotOpenFED,
97  RTI::ErrorReadingFED,
98  RTI::ConcurrentAccessAttempted,
99  RTI::SaveInProgress,
100  RTI::RestoreInProgress,
101  RTI::RTIinternalError);
102 
104  virtual void resignFederationExecution (
105  RTI::ResignAction theAction)
106  throw (
107  RTI::FederateOwnsAttributes,
108  RTI::FederateNotExecutionMember,
109  RTI::InvalidResignAction,
110  RTI::ConcurrentAccessAttempted,
111  RTI::RTIinternalError);
112 
114 
116  const char *label,
117  const char *theTag)
118  throw (
119  RTI::FederateNotExecutionMember,
120  RTI::ConcurrentAccessAttempted,
121  RTI::SaveInProgress,
122  RTI::RestoreInProgress,
123  RTI::RTIinternalError);
124 
126  const char *label,
127  const char *theTag,
128  const RTI::FederateHandleSet& syncSet)
129  throw (
130  RTI::FederateNotExecutionMember,
131  RTI::ConcurrentAccessAttempted,
132  RTI::SaveInProgress,
133  RTI::RestoreInProgress,
134  RTI::RTIinternalError);
136 
138  virtual void synchronizationPointAchieved (
139  const char *label)
140  throw (
141  RTI::SynchronizationPointLabelWasNotAnnounced,
142  RTI::FederateNotExecutionMember,
143  RTI::ConcurrentAccessAttempted,
144  RTI::SaveInProgress,
145  RTI::RestoreInProgress,
146  RTI::RTIinternalError);
147 
149 
150  virtual void requestFederationSave (
151  const char *label,
152  const RTI::FedTime& theTime)
153  throw (
154  RTI::FederationTimeAlreadyPassed,
155  RTI::InvalidFederationTime,
156  RTI::FederateNotExecutionMember,
157  RTI::ConcurrentAccessAttempted,
158  RTI::SaveInProgress,
159  RTI::RestoreInProgress,
160  RTI::RTIinternalError);
161 
162  virtual void requestFederationSave (
163  const char *label)
164  throw (
165  RTI::FederateNotExecutionMember,
166  RTI::ConcurrentAccessAttempted,
167  RTI::SaveInProgress,
168  RTI::RestoreInProgress,
169  RTI::RTIinternalError);
171 
173  virtual void federateSaveBegun ()
174  throw (
175  RTI::SaveNotInitiated,
176  RTI::FederateNotExecutionMember,
177  RTI::ConcurrentAccessAttempted,
178  RTI::RestoreInProgress,
179  RTI::RTIinternalError);
180 
182 
183  virtual void federateSaveComplete ()
184  throw (
185  RTI::SaveNotInitiated,
186  RTI::FederateNotExecutionMember,
187  RTI::ConcurrentAccessAttempted,
188  RTI::RestoreInProgress,
189  RTI::RTIinternalError);
190 
191  virtual void federateSaveNotComplete ()
192  throw (
193  RTI::SaveNotInitiated,
194  RTI::FederateNotExecutionMember,
195  RTI::ConcurrentAccessAttempted,
196  RTI::RestoreInProgress,
197  RTI::RTIinternalError);
199 
201  virtual void requestFederationRestore (
202  const char *label)
203  throw (
204  RTI::FederateNotExecutionMember,
205  RTI::ConcurrentAccessAttempted,
206  RTI::SaveInProgress,
207  RTI::RestoreInProgress,
208  RTI::RTIinternalError);
209 
211 
212  virtual void federateRestoreComplete ()
213  throw (
214  RTI::RestoreNotRequested,
215  RTI::FederateNotExecutionMember,
216  RTI::ConcurrentAccessAttempted,
217  RTI::SaveInProgress,
218  RTI::RTIinternalError);
219 
220  virtual void federateRestoreNotComplete ()
221  throw (
222  RTI::RestoreNotRequested,
223  RTI::FederateNotExecutionMember,
224  RTI::ConcurrentAccessAttempted,
225  RTI::SaveInProgress,
226  RTI::RTIinternalError);
228 
229  //-----------------------------------
231  //----------------------------------
232 
234  virtual void publishObjectClass (
235  RTI::ObjectClassHandle theClass,
236  const RTI::AttributeHandleSet& attributeList)
237  throw (
238  RTI::ObjectClassNotDefined,
239  RTI::AttributeNotDefined,
240  RTI::OwnershipAcquisitionPending,
241  RTI::FederateNotExecutionMember,
242  RTI::ConcurrentAccessAttempted,
243  RTI::SaveInProgress,
244  RTI::RestoreInProgress,
245  RTI::RTIinternalError);
246 
248  virtual void unpublishObjectClass (
249  RTI::ObjectClassHandle theClass)
250  throw (
251  RTI::ObjectClassNotDefined,
252  RTI::ObjectClassNotPublished,
253  RTI::OwnershipAcquisitionPending,
254  RTI::FederateNotExecutionMember,
255  RTI::ConcurrentAccessAttempted,
256  RTI::SaveInProgress,
257  RTI::RestoreInProgress,
258  RTI::RTIinternalError);
259 
261  virtual void publishInteractionClass (
262  RTI::InteractionClassHandle theInteraction)
263  throw (
264  RTI::InteractionClassNotDefined,
265  RTI::FederateNotExecutionMember,
266  RTI::ConcurrentAccessAttempted,
267  RTI::SaveInProgress,
268  RTI::RestoreInProgress,
269  RTI::RTIinternalError);
270 
272  virtual void unpublishInteractionClass (
273  RTI::InteractionClassHandle theInteraction)
274  throw (
275  RTI::InteractionClassNotDefined,
276  RTI::InteractionClassNotPublished,
277  RTI::FederateNotExecutionMember,
278  RTI::ConcurrentAccessAttempted,
279  RTI::SaveInProgress,
280  RTI::RestoreInProgress,
281  RTI::RTIinternalError);
282 
284  virtual void subscribeObjectClassAttributes (
285  RTI::ObjectClassHandle theClass,
286  const RTI::AttributeHandleSet& attributeList,
287  RTI::Boolean active = RTI::RTI_TRUE)
288  throw (
289  RTI::ObjectClassNotDefined,
290  RTI::AttributeNotDefined,
291  RTI::FederateNotExecutionMember,
292  RTI::ConcurrentAccessAttempted,
293  RTI::SaveInProgress,
294  RTI::RestoreInProgress,
295  RTI::RTIinternalError);
296 
298  virtual void unsubscribeObjectClass (
299  RTI::ObjectClassHandle theClass)
300  throw (
301  RTI::ObjectClassNotDefined,
302  RTI::ObjectClassNotSubscribed,
303  RTI::FederateNotExecutionMember,
304  RTI::ConcurrentAccessAttempted,
305  RTI::SaveInProgress,
306  RTI::RestoreInProgress,
307  RTI::RTIinternalError);
308 
310  virtual void subscribeInteractionClass (
311  RTI::InteractionClassHandle theClass,
312  RTI::Boolean active = RTI::RTI_TRUE)
313  throw (
314  RTI::InteractionClassNotDefined,
315  RTI::FederateNotExecutionMember,
316  RTI::ConcurrentAccessAttempted,
317  RTI::FederateLoggingServiceCalls,
318  RTI::SaveInProgress,
319  RTI::RestoreInProgress,
320  RTI::RTIinternalError);
321 
323  virtual void unsubscribeInteractionClass (
324  RTI::InteractionClassHandle theClass)
325  throw (
326  RTI::InteractionClassNotDefined,
327  RTI::InteractionClassNotSubscribed,
328  RTI::FederateNotExecutionMember,
329  RTI::ConcurrentAccessAttempted,
330  RTI::SaveInProgress,
331  RTI::RestoreInProgress,
332  RTI::RTIinternalError);
333 
334  //-------------------------------
336  //-------------------------------
337 
339 
341  RTI::ObjectClassHandle theClass,
342  const char *theObject)
343  throw (
344  RTI::ObjectClassNotDefined,
345  RTI::ObjectClassNotPublished,
346  RTI::ObjectAlreadyRegistered,
347  RTI::FederateNotExecutionMember,
348  RTI::ConcurrentAccessAttempted,
349  RTI::SaveInProgress,
350  RTI::RestoreInProgress,
351  RTI::RTIinternalError);
352 
354  RTI::ObjectClassHandle theClass)
355  throw (
356  RTI::ObjectClassNotDefined,
357  RTI::ObjectClassNotPublished,
358  RTI::FederateNotExecutionMember,
359  RTI::ConcurrentAccessAttempted,
360  RTI::SaveInProgress,
361  RTI::RestoreInProgress,
362  RTI::RTIinternalError);
364 
366 
368  RTI::ObjectHandle theObject,
369  const RTI::AttributeHandleValuePairSet& theAttributes,
370  const RTI::FedTime& theTime,
371  const char *theTag)
372  throw (
373  RTI::ObjectNotKnown,
374  RTI::AttributeNotDefined,
375  RTI::AttributeNotOwned,
376  RTI::InvalidFederationTime,
377  RTI::FederateNotExecutionMember,
378  RTI::ConcurrentAccessAttempted,
379  RTI::SaveInProgress,
380  RTI::RestoreInProgress,
381  RTI::RTIinternalError);
382 
383  virtual void updateAttributeValues (
384  RTI::ObjectHandle theObject,
385  const RTI::AttributeHandleValuePairSet& theAttributes,
386  const char *theTag)
387  throw (
388  RTI::ObjectNotKnown,
389  RTI::AttributeNotDefined,
390  RTI::AttributeNotOwned,
391  RTI::FederateNotExecutionMember,
392  RTI::ConcurrentAccessAttempted,
393  RTI::SaveInProgress,
394  RTI::RestoreInProgress,
395  RTI::RTIinternalError);
397 
399 
401  RTI::InteractionClassHandle theInteraction,
402  const RTI::ParameterHandleValuePairSet& theParameters,
403  const RTI::FedTime& theTime,
404  const char *theTag)
405  throw (
406  RTI::InteractionClassNotDefined,
407  RTI::InteractionClassNotPublished,
408  RTI::InteractionParameterNotDefined,
409  RTI::InvalidFederationTime,
410  RTI::FederateNotExecutionMember,
411  RTI::ConcurrentAccessAttempted,
412  RTI::SaveInProgress,
413  RTI::RestoreInProgress,
414  RTI::RTIinternalError);
415 
416  virtual void sendInteraction (
417  RTI::InteractionClassHandle theInteraction,
418  const RTI::ParameterHandleValuePairSet& theParameters,
419  const char *theTag)
420  throw (
421  RTI::InteractionClassNotDefined,
422  RTI::InteractionClassNotPublished,
423  RTI::InteractionParameterNotDefined,
424  RTI::FederateNotExecutionMember,
425  RTI::ConcurrentAccessAttempted,
426  RTI::SaveInProgress,
427  RTI::RestoreInProgress,
428  RTI::RTIinternalError);
430 
432 
434  RTI::ObjectHandle theObject,
435  const RTI::FedTime& theTime,
436  const char *theTag)
437  throw (
438  RTI::ObjectNotKnown,
439  RTI::DeletePrivilegeNotHeld,
440  RTI::InvalidFederationTime,
441  RTI::FederateNotExecutionMember,
442  RTI::ConcurrentAccessAttempted,
443  RTI::SaveInProgress,
444  RTI::RestoreInProgress,
445  RTI::RTIinternalError);
446 
447  virtual void deleteObjectInstance (
448  RTI::ObjectHandle theObject,
449  const char *theTag)
450  throw (
451  RTI::ObjectNotKnown,
452  RTI::DeletePrivilegeNotHeld,
453  RTI::FederateNotExecutionMember,
454  RTI::ConcurrentAccessAttempted,
455  RTI::SaveInProgress,
456  RTI::RestoreInProgress,
457  RTI::RTIinternalError);
459 
461  virtual void localDeleteObjectInstance (
462  RTI::ObjectHandle theObject)
463  throw (
464  RTI::ObjectNotKnown,
465  RTI::FederateOwnsAttributes,
466  RTI::FederateNotExecutionMember,
467  RTI::ConcurrentAccessAttempted,
468  RTI::SaveInProgress,
469  RTI::RestoreInProgress,
470  RTI::RTIinternalError);
471 
473  virtual void changeAttributeTransportationType (
474  RTI::ObjectHandle theObject,
475  const RTI::AttributeHandleSet& theAttributes,
476  RTI::TransportationHandle theType)
477  throw (
478  RTI::ObjectNotKnown,
479  RTI::AttributeNotDefined,
480  RTI::AttributeNotOwned,
481  RTI::InvalidTransportationHandle,
482  RTI::FederateNotExecutionMember,
483  RTI::ConcurrentAccessAttempted,
484  RTI::SaveInProgress,
485  RTI::RestoreInProgress,
486  RTI::RTIinternalError);
487 
490  RTI::InteractionClassHandle theClass,
491  RTI::TransportationHandle theType)
492  throw (
493  RTI::InteractionClassNotDefined,
494  RTI::InteractionClassNotPublished,
495  RTI::InvalidTransportationHandle,
496  RTI::FederateNotExecutionMember,
497  RTI::ConcurrentAccessAttempted,
498  RTI::SaveInProgress,
499  RTI::RestoreInProgress,
500  RTI::RTIinternalError);
501 
503 
504  virtual void requestObjectAttributeValueUpdate (
505  RTI::ObjectHandle theObject,
506  const RTI::AttributeHandleSet& theAttributes)
507  throw (
508  RTI::ObjectNotKnown,
509  RTI::AttributeNotDefined,
510  RTI::FederateNotExecutionMember,
511  RTI::ConcurrentAccessAttempted,
512  RTI::SaveInProgress,
513  RTI::RestoreInProgress,
514  RTI::RTIinternalError);
515 
516  virtual void requestClassAttributeValueUpdate (
517  RTI::ObjectClassHandle theClass,
518  const RTI::AttributeHandleSet& theAttributes)
519  throw (
520  RTI::ObjectClassNotDefined,
521  RTI::AttributeNotDefined,
522  RTI::FederateNotExecutionMember,
523  RTI::ConcurrentAccessAttempted,
524  RTI::SaveInProgress,
525  RTI::RestoreInProgress,
526  RTI::RTIinternalError);
528 
529  //---------------------------------
531  //---------------------------------
532 
535  RTI::ObjectHandle theObject,
536  const RTI::AttributeHandleSet& theAttributes)
537  throw (
538  RTI::ObjectNotKnown,
539  RTI::AttributeNotDefined,
540  RTI::AttributeNotOwned,
541  RTI::FederateNotExecutionMember,
542  RTI::ConcurrentAccessAttempted,
543  RTI::SaveInProgress,
544  RTI::RestoreInProgress,
545  RTI::RTIinternalError);
546 
549  RTI::ObjectHandle theObject,
550  const RTI::AttributeHandleSet& theAttributes,
551  const char *theTag)
552  throw (
553  RTI::ObjectNotKnown,
554  RTI::AttributeNotDefined,
555  RTI::AttributeNotOwned,
556  RTI::AttributeAlreadyBeingDivested,
557  RTI::FederateNotExecutionMember,
558  RTI::ConcurrentAccessAttempted,
559  RTI::SaveInProgress,
560  RTI::RestoreInProgress,
561  RTI::RTIinternalError);
562 
564  virtual void attributeOwnershipAcquisition (
565  RTI::ObjectHandle theObject,
566  const RTI::AttributeHandleSet& desiredAttributes,
567  const char *theTag)
568  throw (
569  RTI::ObjectNotKnown,
570  RTI::ObjectClassNotPublished,
571  RTI::AttributeNotDefined,
572  RTI::AttributeNotPublished,
573  RTI::FederateOwnsAttributes,
574  RTI::FederateNotExecutionMember,
575  RTI::ConcurrentAccessAttempted,
576  RTI::SaveInProgress,
577  RTI::RestoreInProgress,
578  RTI::RTIinternalError);
579 
582  RTI::ObjectHandle theObject,
583  const RTI::AttributeHandleSet& desiredAttributes)
584  throw (
585  RTI::ObjectNotKnown,
586  RTI::ObjectClassNotPublished,
587  RTI::AttributeNotDefined,
588  RTI::AttributeNotPublished,
589  RTI::FederateOwnsAttributes,
590  RTI::AttributeAlreadyBeingAcquired,
591  RTI::FederateNotExecutionMember,
592  RTI::ConcurrentAccessAttempted,
593  RTI::SaveInProgress,
594  RTI::RestoreInProgress,
595  RTI::RTIinternalError);
596 
599  RTI::ObjectHandle theObject,
600  const RTI::AttributeHandleSet& theAttributes)
601  throw (
602  RTI::ObjectNotKnown,
603  RTI::AttributeNotDefined,
604  RTI::AttributeNotOwned,
605  RTI::FederateWasNotAskedToReleaseAttribute,
606  RTI::FederateNotExecutionMember,
607  RTI::ConcurrentAccessAttempted,
608  RTI::SaveInProgress,
609  RTI::RestoreInProgress,
610  RTI::RTIinternalError);
611 
614  RTI::ObjectHandle theObject,
615  const RTI::AttributeHandleSet& theAttributes)
616  throw (
617  RTI::ObjectNotKnown,
618  RTI::AttributeNotDefined,
619  RTI::AttributeNotOwned,
620  RTI::AttributeDivestitureWasNotRequested,
621  RTI::FederateNotExecutionMember,
622  RTI::ConcurrentAccessAttempted,
623  RTI::SaveInProgress,
624  RTI::RestoreInProgress,
625  RTI::RTIinternalError);
626 
629  RTI::ObjectHandle theObject,
630  const RTI::AttributeHandleSet& theAttributes)
631  throw (
632  RTI::ObjectNotKnown,
633  RTI::AttributeNotDefined,
634  RTI::AttributeAlreadyOwned,
635  RTI::AttributeAcquisitionWasNotRequested,
636  RTI::FederateNotExecutionMember,
637  RTI::ConcurrentAccessAttempted,
638  RTI::SaveInProgress,
639  RTI::RestoreInProgress,
640  RTI::RTIinternalError);
641 
643  virtual void queryAttributeOwnership (
644  RTI::ObjectHandle theObject,
645  RTI::AttributeHandle theAttribute)
646  throw (
647  RTI::ObjectNotKnown,
648  RTI::AttributeNotDefined,
649  RTI::FederateNotExecutionMember,
650  RTI::ConcurrentAccessAttempted,
651  RTI::SaveInProgress,
652  RTI::RestoreInProgress,
653  RTI::RTIinternalError);
654 
657  RTI::ObjectHandle theObject,
658  RTI::AttributeHandle theAttribute)
659  throw (
660  RTI::ObjectNotKnown,
661  RTI::AttributeNotDefined,
662  RTI::FederateNotExecutionMember,
663  RTI::ConcurrentAccessAttempted,
664  RTI::SaveInProgress,
665  RTI::RestoreInProgress,
666  RTI::RTIinternalError);
667 
668  //----------------------------
670  //----------------------------
671 
673  virtual void enableTimeRegulation (
674  const RTI::FedTime& theFederateTime,
675  const RTI::FedTime& theLookahead)
676  throw (
677  RTI::TimeRegulationAlreadyEnabled,
678  RTI::EnableTimeRegulationPending,
679  RTI::TimeAdvanceAlreadyInProgress,
680  RTI::InvalidFederationTime,
681  RTI::InvalidLookahead,
682  RTI::ConcurrentAccessAttempted,
683  RTI::FederateNotExecutionMember,
684  RTI::SaveInProgress,
685  RTI::RestoreInProgress,
686  RTI::RTIinternalError);
687 
689  virtual void disableTimeRegulation ()
690  throw (
691  RTI::TimeRegulationWasNotEnabled,
692  RTI::ConcurrentAccessAttempted,
693  RTI::FederateNotExecutionMember,
694  RTI::SaveInProgress,
695  RTI::RestoreInProgress,
696  RTI::RTIinternalError);
697 
699  virtual void enableTimeConstrained ()
700  throw (
701  RTI::TimeConstrainedAlreadyEnabled,
702  RTI::EnableTimeConstrainedPending,
703  RTI::TimeAdvanceAlreadyInProgress,
704  RTI::FederateNotExecutionMember,
705  RTI::ConcurrentAccessAttempted,
706  RTI::SaveInProgress,
707  RTI::RestoreInProgress,
708  RTI::RTIinternalError);
709 
711  virtual void disableTimeConstrained ()
712  throw (
713  RTI::TimeConstrainedWasNotEnabled,
714  RTI::FederateNotExecutionMember,
715  RTI::ConcurrentAccessAttempted,
716  RTI::SaveInProgress,
717  RTI::RestoreInProgress,
718  RTI::RTIinternalError);
719 
721  virtual void timeAdvanceRequest (
722  const RTI::FedTime& theTime)
723  throw (
724  RTI::InvalidFederationTime,
725  RTI::FederationTimeAlreadyPassed,
726  RTI::TimeAdvanceAlreadyInProgress,
727  RTI::EnableTimeRegulationPending,
728  RTI::EnableTimeConstrainedPending,
729  RTI::FederateNotExecutionMember,
730  RTI::ConcurrentAccessAttempted,
731  RTI::SaveInProgress,
732  RTI::RestoreInProgress,
733  RTI::RTIinternalError);
734 
736  virtual void timeAdvanceRequestAvailable (
737  const RTI::FedTime& theTime)
738  throw (
739  RTI::InvalidFederationTime,
740  RTI::FederationTimeAlreadyPassed,
741  RTI::TimeAdvanceAlreadyInProgress,
742  RTI::EnableTimeRegulationPending,
743  RTI::EnableTimeConstrainedPending,
744  RTI::FederateNotExecutionMember,
745  RTI::ConcurrentAccessAttempted,
746  RTI::SaveInProgress,
747  RTI::RestoreInProgress,
748  RTI::RTIinternalError);
749 
751  virtual void nextEventRequest (
752  const RTI::FedTime& theTime)
753  throw (
754  RTI::InvalidFederationTime,
755  RTI::FederationTimeAlreadyPassed,
756  RTI::TimeAdvanceAlreadyInProgress,
757  RTI::EnableTimeRegulationPending,
758  RTI::EnableTimeConstrainedPending,
759  RTI::FederateNotExecutionMember,
760  RTI::ConcurrentAccessAttempted,
761  RTI::SaveInProgress,
762  RTI::RestoreInProgress,
763  RTI::RTIinternalError);
764 
766  virtual void nextEventRequestAvailable (
767  const RTI::FedTime& theTime)
768  throw (
769  RTI::InvalidFederationTime,
770  RTI::FederationTimeAlreadyPassed,
771  RTI::TimeAdvanceAlreadyInProgress,
772  RTI::EnableTimeRegulationPending,
773  RTI::EnableTimeConstrainedPending,
774  RTI::FederateNotExecutionMember,
775  RTI::ConcurrentAccessAttempted,
776  RTI::SaveInProgress,
777  RTI::RestoreInProgress,
778  RTI::RTIinternalError);
779 
781  virtual void flushQueueRequest (
782  const RTI::FedTime& theTime)
783  throw (
784  RTI::InvalidFederationTime,
785  RTI::FederationTimeAlreadyPassed,
786  RTI::TimeAdvanceAlreadyInProgress,
787  RTI::EnableTimeRegulationPending,
788  RTI::EnableTimeConstrainedPending,
789  RTI::FederateNotExecutionMember,
790  RTI::ConcurrentAccessAttempted,
791  RTI::SaveInProgress,
792  RTI::RestoreInProgress,
793  RTI::RTIinternalError);
794 
796  virtual void enableAsynchronousDelivery()
797  throw (
798  RTI::AsynchronousDeliveryAlreadyEnabled,
799  RTI::FederateNotExecutionMember,
800  RTI::ConcurrentAccessAttempted,
801  RTI::SaveInProgress,
802  RTI::RestoreInProgress,
803  RTI::RTIinternalError);
804 
806  virtual void disableAsynchronousDelivery()
807  throw (
808  RTI::AsynchronousDeliveryAlreadyDisabled,
809  RTI::FederateNotExecutionMember,
810  RTI::ConcurrentAccessAttempted,
811  RTI::SaveInProgress,
812  RTI::RestoreInProgress,
813  RTI::RTIinternalError);
814 
816  virtual void queryLBTS (
817  RTI::FedTime& theTime)
818  throw (
819  RTI::FederateNotExecutionMember,
820  RTI::ConcurrentAccessAttempted,
821  RTI::SaveInProgress,
822  RTI::RestoreInProgress,
823  RTI::RTIinternalError);
824 
826  virtual void queryFederateTime (
827  RTI::FedTime& theTime)
828  throw (
829  RTI::FederateNotExecutionMember,
830  RTI::ConcurrentAccessAttempted,
831  RTI::SaveInProgress,
832  RTI::RestoreInProgress,
833  RTI::RTIinternalError);
834 
836  virtual void queryMinNextEventTime (
837  RTI::FedTime& theTime)
838  throw (
839  RTI::FederateNotExecutionMember,
840  RTI::ConcurrentAccessAttempted,
841  RTI::SaveInProgress,
842  RTI::RestoreInProgress,
843  RTI::RTIinternalError);
844 
846  virtual void modifyLookahead (
847  const RTI::FedTime& theLookahead)
848  throw (
849  RTI::InvalidLookahead,
850  RTI::FederateNotExecutionMember,
851  RTI::ConcurrentAccessAttempted,
852  RTI::SaveInProgress,
853  RTI::RestoreInProgress,
854  RTI::RTIinternalError);
855 
857  virtual void queryLookahead (
858  RTI::FedTime& theTime)
859  throw (
860  RTI::FederateNotExecutionMember,
861  RTI::ConcurrentAccessAttempted,
862  RTI::SaveInProgress,
863  RTI::RestoreInProgress,
864  RTI::RTIinternalError);
865 
867  virtual void retract (
868  RTI::EventRetractionHandle theHandle)
869  throw (
870  RTI::InvalidRetractionHandle,
871  RTI::FederateNotExecutionMember,
872  RTI::ConcurrentAccessAttempted,
873  RTI::SaveInProgress,
874  RTI::RestoreInProgress,
875  RTI::RTIinternalError);
876 
878  virtual void changeAttributeOrderType (
879  RTI::ObjectHandle theObject,
880  const RTI::AttributeHandleSet& theAttributes,
881  RTI::OrderingHandle theType)
882  throw (
883  RTI::ObjectNotKnown,
884  RTI::AttributeNotDefined,
885  RTI::AttributeNotOwned,
886  RTI::InvalidOrderingHandle,
887  RTI::FederateNotExecutionMember,
888  RTI::ConcurrentAccessAttempted,
889  RTI::SaveInProgress,
890  RTI::RestoreInProgress,
891  RTI::RTIinternalError);
892 
894  virtual void changeInteractionOrderType (
895  RTI::InteractionClassHandle theClass,
896  RTI::OrderingHandle theType)
897  throw (
898  RTI::InteractionClassNotDefined,
899  RTI::InteractionClassNotPublished,
900  RTI::InvalidOrderingHandle,
901  RTI::FederateNotExecutionMember,
902  RTI::ConcurrentAccessAttempted,
903  RTI::SaveInProgress,
904  RTI::RestoreInProgress,
905  RTI::RTIinternalError);
906 
907  //--------------------------------
909  //--------------------------------
910 
912  virtual RTI::Region* createRegion (
913  RTI::SpaceHandle theSpace,
914  RTI::ULong numberOfExtents)
915  throw (
916  RTI::SpaceNotDefined,
917  RTI::InvalidExtents,
918  RTI::FederateNotExecutionMember,
919  RTI::ConcurrentAccessAttempted,
920  RTI::SaveInProgress,
921  RTI::RestoreInProgress,
922  RTI::RTIinternalError);
923 
925  virtual void notifyAboutRegionModification (
926  RTI::Region &theRegion)
927  throw (
928  RTI::RegionNotKnown,
929  RTI::InvalidExtents,
930  RTI::FederateNotExecutionMember,
931  RTI::ConcurrentAccessAttempted,
932  RTI::SaveInProgress,
933  RTI::RestoreInProgress,
934  RTI::RTIinternalError);
935 
937  virtual void deleteRegion (
938  RTI::Region *theRegion)
939  throw (
940  RTI::RegionNotKnown,
941  RTI::RegionInUse,
942  RTI::FederateNotExecutionMember,
943  RTI::ConcurrentAccessAttempted,
944  RTI::SaveInProgress,
945  RTI::RestoreInProgress,
946  RTI::RTIinternalError);
947 
949 
951  RTI::ObjectClassHandle theClass,
952  const char *theObject,
953  RTI::AttributeHandle theAttributes[],
954  RTI::Region *theRegions[],
955  RTI::ULong theNumberOfHandles)
956  throw (
957  RTI::ObjectClassNotDefined,
958  RTI::ObjectClassNotPublished,
959  RTI::AttributeNotDefined,
960  RTI::AttributeNotPublished,
961  RTI::RegionNotKnown,
962  RTI::InvalidRegionContext,
963  RTI::ObjectAlreadyRegistered,
964  RTI::FederateNotExecutionMember,
965  RTI::ConcurrentAccessAttempted,
966  RTI::SaveInProgress,
967  RTI::RestoreInProgress,
968  RTI::RTIinternalError);
969 
971  RTI::ObjectClassHandle theClass,
972  RTI::AttributeHandle theAttributes[],
973  RTI::Region *theRegions[],
974  RTI::ULong theNumberOfHandles)
975  throw (
976  RTI::ObjectClassNotDefined,
977  RTI::ObjectClassNotPublished,
978  RTI::AttributeNotDefined,
979  RTI::AttributeNotPublished,
980  RTI::RegionNotKnown,
981  RTI::InvalidRegionContext,
982  RTI::FederateNotExecutionMember,
983  RTI::ConcurrentAccessAttempted,
984  RTI::SaveInProgress,
985  RTI::RestoreInProgress,
986  RTI::RTIinternalError);
988 
990  virtual void associateRegionForUpdates (
991  RTI::Region &theRegion,
992  RTI::ObjectHandle theObject,
993  const RTI::AttributeHandleSet &theAttributes)
994  throw (
995  RTI::ObjectNotKnown,
996  RTI::AttributeNotDefined,
997  RTI::InvalidRegionContext,
998  RTI::RegionNotKnown,
999  RTI::FederateNotExecutionMember,
1000  RTI::ConcurrentAccessAttempted,
1001  RTI::SaveInProgress,
1002  RTI::RestoreInProgress,
1003  RTI::RTIinternalError);
1004 
1006  virtual void unassociateRegionForUpdates (
1007  RTI::Region &theRegion,
1008  RTI::ObjectHandle theObject)
1009  throw (
1010  RTI::ObjectNotKnown,
1011  RTI::InvalidRegionContext,
1012  RTI::RegionNotKnown,
1013  RTI::FederateNotExecutionMember,
1014  RTI::ConcurrentAccessAttempted,
1015  RTI::SaveInProgress,
1016  RTI::RestoreInProgress,
1017  RTI::RTIinternalError);
1018 
1021  RTI::ObjectClassHandle theClass,
1022  RTI::Region &theRegion,
1023  const RTI::AttributeHandleSet &attributeList,
1024  RTI::Boolean active = RTI::RTI_TRUE)
1025  throw (
1026  RTI::ObjectClassNotDefined,
1027  RTI::AttributeNotDefined,
1028  RTI::RegionNotKnown,
1029  RTI::InvalidRegionContext,
1030  RTI::FederateNotExecutionMember,
1031  RTI::ConcurrentAccessAttempted,
1032  RTI::SaveInProgress,
1033  RTI::RestoreInProgress,
1034  RTI::RTIinternalError);
1035 
1037  virtual void unsubscribeObjectClassWithRegion (
1038  RTI::ObjectClassHandle theClass,
1039  RTI::Region &theRegion)
1040  throw (
1041  RTI::ObjectClassNotDefined,
1042  RTI::RegionNotKnown,
1043  RTI::ObjectClassNotSubscribed,
1044  RTI::FederateNotExecutionMember,
1045  RTI::ConcurrentAccessAttempted,
1046  RTI::SaveInProgress,
1047  RTI::RestoreInProgress,
1048  RTI::RTIinternalError);
1049 
1052  RTI::InteractionClassHandle theClass,
1053  RTI::Region &theRegion,
1054  RTI::Boolean active = RTI::RTI_TRUE)
1055  throw (
1056  RTI::InteractionClassNotDefined,
1057  RTI::RegionNotKnown,
1058  RTI::InvalidRegionContext,
1059  RTI::FederateLoggingServiceCalls,
1060  RTI::FederateNotExecutionMember,
1061  RTI::ConcurrentAccessAttempted,
1062  RTI::SaveInProgress,
1063  RTI::RestoreInProgress,
1064  RTI::RTIinternalError);
1065 
1068  RTI::InteractionClassHandle theClass,
1069  RTI::Region &theRegion)
1070  throw (
1071  RTI::InteractionClassNotDefined,
1072  RTI::InteractionClassNotSubscribed,
1073  RTI::RegionNotKnown,
1074  RTI::FederateNotExecutionMember,
1075  RTI::ConcurrentAccessAttempted,
1076  RTI::SaveInProgress,
1077  RTI::RestoreInProgress,
1078  RTI::RTIinternalError);
1079 
1081 
1083  RTI::InteractionClassHandle theInteraction,
1084  const RTI::ParameterHandleValuePairSet &theParameters,
1085  const RTI::FedTime& theTime,
1086  const char *theTag,
1087  const RTI::Region &theRegion)
1088  throw (
1089  RTI::InteractionClassNotDefined,
1090  RTI::InteractionClassNotPublished,
1091  RTI::InteractionParameterNotDefined,
1092  RTI::InvalidFederationTime,
1093  RTI::RegionNotKnown,
1094  RTI::InvalidRegionContext,
1095  RTI::FederateNotExecutionMember,
1096  RTI::ConcurrentAccessAttempted,
1097  RTI::SaveInProgress,
1098  RTI::RestoreInProgress,
1099  RTI::RTIinternalError);
1100 
1101  virtual void sendInteractionWithRegion (
1102  RTI::InteractionClassHandle theInteraction,
1103  const RTI::ParameterHandleValuePairSet &theParameters,
1104  const char *theTag,
1105  const RTI::Region &theRegion)
1106  throw (
1107  RTI::InteractionClassNotDefined,
1108  RTI::InteractionClassNotPublished,
1109  RTI::InteractionParameterNotDefined,
1110  RTI::RegionNotKnown,
1111  RTI::InvalidRegionContext,
1112  RTI::FederateNotExecutionMember,
1113  RTI::ConcurrentAccessAttempted,
1114  RTI::SaveInProgress,
1115  RTI::RestoreInProgress,
1116  RTI::RTIinternalError);
1118 
1121  RTI::ObjectClassHandle theClass,
1122  const RTI::AttributeHandleSet &theAttributes,
1123  const RTI::Region &theRegion)
1124  throw (
1125  RTI::ObjectClassNotDefined,
1126  RTI::AttributeNotDefined,
1127  RTI::RegionNotKnown,
1128  RTI::FederateNotExecutionMember,
1129  RTI::ConcurrentAccessAttempted,
1130  RTI::SaveInProgress,
1131  RTI::RestoreInProgress,
1132  RTI::RTIinternalError);
1133 
1134  //------------------------
1136  //------------------------
1137 
1140  const char *theName)
1141  throw (
1142  RTI::NameNotFound,
1143  RTI::FederateNotExecutionMember,
1144  RTI::ConcurrentAccessAttempted,
1145  RTI::RTIinternalError);
1146 
1148  virtual char * getObjectClassName (
1149  RTI::ObjectClassHandle theHandle)
1150  throw (
1151  RTI::ObjectClassNotDefined,
1152  RTI::FederateNotExecutionMember,
1153  RTI::ConcurrentAccessAttempted,
1154  RTI::RTIinternalError);
1155 
1158  const char *theName,
1159  RTI::ObjectClassHandle whichClass)
1160  throw (
1161  RTI::ObjectClassNotDefined,
1162  RTI::NameNotFound,
1163  RTI::FederateNotExecutionMember,
1164  RTI::ConcurrentAccessAttempted,
1165  RTI::RTIinternalError);
1166 
1168  virtual char * getAttributeName (
1169  RTI::AttributeHandle theHandle,
1170  RTI::ObjectClassHandle whichClass)
1171  throw (
1172  RTI::ObjectClassNotDefined,
1173  RTI::AttributeNotDefined,
1174  RTI::FederateNotExecutionMember,
1175  RTI::ConcurrentAccessAttempted,
1176  RTI::RTIinternalError);
1177 
1180  const char *theName)
1181  throw (
1182  RTI::NameNotFound,
1183  RTI::FederateNotExecutionMember,
1184  RTI::ConcurrentAccessAttempted,
1185  RTI::RTIinternalError);
1186 
1188  virtual char * getInteractionClassName (
1189  RTI::InteractionClassHandle theHandle)
1190  throw (
1191  RTI::InteractionClassNotDefined,
1192  RTI::FederateNotExecutionMember,
1193  RTI::ConcurrentAccessAttempted,
1194  RTI::RTIinternalError);
1195 
1198  const char *theName,
1199  RTI::InteractionClassHandle whichClass)
1200  throw (
1201  RTI::InteractionClassNotDefined,
1202  RTI::NameNotFound,
1203  RTI::FederateNotExecutionMember,
1204  RTI::ConcurrentAccessAttempted,
1205  RTI::RTIinternalError);
1206 
1208  virtual char * getParameterName (
1209  RTI::ParameterHandle theHandle,
1210  RTI::InteractionClassHandle whichClass)
1211  throw (
1212  RTI::InteractionClassNotDefined,
1213  RTI::InteractionParameterNotDefined,
1214  RTI::FederateNotExecutionMember,
1215  RTI::ConcurrentAccessAttempted,
1216  RTI::RTIinternalError);
1217 
1220  const char *theName)
1221  throw (
1222  RTI::ObjectNotKnown,
1223  RTI::FederateNotExecutionMember,
1224  RTI::ConcurrentAccessAttempted,
1225  RTI::RTIinternalError);
1226 
1228  virtual char * getObjectInstanceName (
1229  RTI::ObjectHandle theHandle)
1230  throw (
1231  RTI::ObjectNotKnown,
1232  RTI::FederateNotExecutionMember,
1233  RTI::ConcurrentAccessAttempted,
1234  RTI::RTIinternalError);
1235 
1238  const char *theName)
1239  throw (
1240  RTI::NameNotFound,
1241  RTI::FederateNotExecutionMember,
1242  RTI::ConcurrentAccessAttempted,
1243  RTI::RTIinternalError);
1244 
1246  virtual char * getRoutingSpaceName (
1247  RTI::SpaceHandle theHandle)
1248  throw (
1249  RTI::SpaceNotDefined,
1250  RTI::FederateNotExecutionMember,
1251  RTI::ConcurrentAccessAttempted,
1252  RTI::RTIinternalError);
1253 
1256  const char *theName,
1257  RTI::SpaceHandle whichSpace)
1258  throw (
1259  RTI::SpaceNotDefined,
1260  RTI::NameNotFound,
1261  RTI::FederateNotExecutionMember,
1262  RTI::ConcurrentAccessAttempted,
1263  RTI::RTIinternalError);
1264 
1266  virtual char * getDimensionName (
1267  RTI::DimensionHandle theHandle,
1268  RTI::SpaceHandle whichSpace)
1269  throw (
1270  RTI::SpaceNotDefined,
1271  RTI::DimensionNotDefined,
1272  RTI::FederateNotExecutionMember,
1273  RTI::ConcurrentAccessAttempted,
1274  RTI::RTIinternalError);
1275 
1278  RTI::AttributeHandle theHandle,
1279  RTI::ObjectClassHandle whichClass)
1280  throw (
1281  RTI::ObjectClassNotDefined,
1282  RTI::AttributeNotDefined,
1283  RTI::FederateNotExecutionMember,
1284  RTI::ConcurrentAccessAttempted,
1285  RTI::RTIinternalError);
1286 
1289  RTI::ObjectHandle theObject)
1290  throw (
1291  RTI::ObjectNotKnown,
1292  RTI::FederateNotExecutionMember,
1293  RTI::ConcurrentAccessAttempted,
1294  RTI::RTIinternalError);
1295 
1298  RTI::InteractionClassHandle theHandle)
1299  throw (
1300  RTI::InteractionClassNotDefined,
1301  RTI::FederateNotExecutionMember,
1302  RTI::ConcurrentAccessAttempted,
1303  RTI::RTIinternalError);
1304 
1307  const char *theName)
1308  throw (
1309  RTI::NameNotFound,
1310  RTI::FederateNotExecutionMember,
1311  RTI::ConcurrentAccessAttempted,
1312  RTI::RTIinternalError);
1313 
1315  virtual char * getTransportationName (
1316  RTI::TransportationHandle theHandle)
1317  throw (
1318  RTI::InvalidTransportationHandle,
1319  RTI::FederateNotExecutionMember,
1320  RTI::ConcurrentAccessAttempted,
1321  RTI::RTIinternalError);
1322 
1325  const char *theName)
1326  throw (
1327  RTI::NameNotFound,
1328  RTI::FederateNotExecutionMember,
1329  RTI::ConcurrentAccessAttempted,
1330  RTI::RTIinternalError);
1331 
1333  virtual char * getOrderingName (
1334  RTI::OrderingHandle theHandle)
1335  throw (
1336  RTI::InvalidOrderingHandle,
1337  RTI::FederateNotExecutionMember,
1338  RTI::ConcurrentAccessAttempted,
1339  RTI::RTIinternalError);
1340 
1342  virtual void enableClassRelevanceAdvisorySwitch()
1343  throw(
1344  RTI::FederateNotExecutionMember,
1345  RTI::ConcurrentAccessAttempted,
1346  RTI::SaveInProgress,
1347  RTI::RestoreInProgress,
1348  RTI::RTIinternalError);
1349 
1352  throw(
1353  RTI::FederateNotExecutionMember,
1354  RTI::ConcurrentAccessAttempted,
1355  RTI::SaveInProgress,
1356  RTI::RestoreInProgress,
1357  RTI::RTIinternalError);
1358 
1361  throw(
1362  RTI::FederateNotExecutionMember,
1363  RTI::ConcurrentAccessAttempted,
1364  RTI::SaveInProgress,
1365  RTI::RestoreInProgress,
1366  RTI::RTIinternalError);
1367 
1370  throw(
1371  RTI::FederateNotExecutionMember,
1372  RTI::ConcurrentAccessAttempted,
1373  RTI::SaveInProgress,
1374  RTI::RestoreInProgress,
1375  RTI::RTIinternalError);
1376 
1378  virtual void enableAttributeScopeAdvisorySwitch()
1379  throw(
1380  RTI::FederateNotExecutionMember,
1381  RTI::ConcurrentAccessAttempted,
1382  RTI::SaveInProgress,
1383  RTI::RestoreInProgress,
1384  RTI::RTIinternalError);
1385 
1388  throw(
1389  RTI::FederateNotExecutionMember,
1390  RTI::ConcurrentAccessAttempted,
1391  RTI::SaveInProgress,
1392  RTI::RestoreInProgress,
1393  RTI::RTIinternalError);
1394 
1397  throw(
1398  RTI::FederateNotExecutionMember,
1399  RTI::ConcurrentAccessAttempted,
1400  RTI::SaveInProgress,
1401  RTI::RestoreInProgress,
1402  RTI::RTIinternalError);
1403 
1406  throw(
1407  RTI::FederateNotExecutionMember,
1408  RTI::ConcurrentAccessAttempted,
1409  RTI::SaveInProgress,
1410  RTI::RestoreInProgress,
1411  RTI::RTIinternalError);
1412 
1413  virtual RTI::Boolean tick ()
1414  throw (
1415  RTI::SpecifiedSaveLabelDoesNotExist,
1416  RTI::ConcurrentAccessAttempted,
1417  RTI::RTIinternalError);
1418 
1419  virtual RTI::Boolean tick (
1420  RTI::TickTime minimum,
1421  RTI::TickTime maximum,
1422  RTI::Boolean unlockWhileWaiting=RTI::RTI_FALSE)
1423  throw (
1424  RTI::SpecifiedSaveLabelDoesNotExist,
1425  RTI::ConcurrentAccessAttempted,
1426  RTI::RTIinternalError);
1427 
1428  virtual RTI::RegionToken getRegionToken(
1429  RTI::Region *)
1430  throw(
1431  RTI::FederateNotExecutionMember,
1432  RTI::ConcurrentAccessAttempted,
1433  RTI::RegionNotKnown,
1434  RTI::RTIinternalError);
1435 
1436  virtual RTI::Region * getRegion(
1437  RTI::RegionToken)
1438  throw(
1439  RTI::FederateNotExecutionMember,
1440  RTI::ConcurrentAccessAttempted,
1441  RTI::RegionNotKnown,
1442  RTI::RTIinternalError);
1443 
1444  //---------------------------------------------------------
1446  //---------------------------------------------------------
1447 
1448 
1449 public:
1450 
1454  static DtRtiAmbassadorImplementor* create(RTI::RTIambassador* topLevelAmbPtr);
1455 
1459  static void setCreatorFunction(DtRtiAmbassadorImplementorCreator creator);
1460 
1461 protected:
1462 
1464  virtual void throwInternalError(const MAKRti::DtString & errorMessage) const;
1465 
1467  virtual void throwNotConnected(const MAKRti::DtString & errorMessage) const;
1468 
1470  virtual void throwNotJoined(const MAKRti::DtString & errorMessage) const;
1471 
1472 protected:
1473 
1475  RTI::RTIambassador* myTopLevelAmb;
1476 
1478  bool myAccessingRtiAmb;
1479 
1480 protected:
1481 
1483  static DtRtiAmbassadorImplementorCreator theCreator;
1484 };
1485 
1487 class DtConcurrentAccessCheck
1488 {
1489 public:
1490 
1491  DtConcurrentAccessCheck(bool* accessFlag)
1492  {
1493  myAccessFlag = accessFlag;
1494  if(theAccessCheckRequired)
1495  {
1496  if(*myAccessFlag)
1497  {
1498  throw RTI::ConcurrentAccessAttempted("Concurrent RTIambassador access attempted.");
1499  }
1500  *myAccessFlag = true;
1501  }
1502  }
1503 
1504  ~DtConcurrentAccessCheck()
1505  {
1506  *myAccessFlag = false;
1507  }
1508 
1509  static void checkForConcurrentAccess(bool check)
1510  {
1511  theAccessCheckRequired = check;
1512  }
1513 
1514 protected:
1515 
1516  bool* myAccessFlag;
1517 
1518 protected:
1519 
1520  static bool theAccessCheckRequired;
1521 
1522 private:
1523  DtConcurrentAccessCheck(const DtConcurrentAccessCheck& orig);
1524  DtConcurrentAccessCheck& operator=(const DtConcurrentAccessCheck& orig);
1525 };
1526 
1527 #endif

Document ID: Generated on Fri Mar 14 19:08:55 EDT 2014 from SVN revision 137085
Copyright © 2005-2014 VT MÄK Inc. All Rights Reserved (www.mak.com)