VR-Link API Documentation for HLA Evolved
vrlRtiAmbassador1516e.h
Go to the documentation of this file.
1 /*********************************************************************
2  ** Copyright (c) 1992-2010 VT MAK
3  ** All rights reserved.
4  *********************************************************************/
5 
8 
9 #pragma once
10 
11 #if DtHLA
12 #if DtHLA_1516_EVOLVED
13 
14 #include <vlutil/vlMachineTypes.h>
15 #include "rtiNamespace.h"
16 
17 using namespace RTI;
18 
19 
25 {
26 
27 public:
28 
29 
31  throw ();
32 
33  virtual ~DtVrlRtiAmbassador();
34 
35 private:
37  DtVrlRtiAmbassador(const DtVrlRtiAmbassador& orig);
38 
40  DtVrlRtiAmbassador& operator=(const DtVrlRtiAmbassador& orig);
41 
42 public:
43 
46  virtual RTI::RTIambassador* rtiAmb();
47 
48  // 4.2
49  virtual void connect (
50  FederateAmbassador & federateAmbassador,
51  CallbackModel theCallbackModel,
52  std::wstring const & localSettingsDesignator=L"")
53  throw (
54  ConnectionFailed,
55  InvalidLocalSettingsDesignator,
56  UnsupportedCallbackModel,
57  AlreadyConnected,
58  CallNotAllowedFromWithinCallback,
59  RTIinternalError) = 0;
60 
61  // 4.3
62  virtual void disconnect ()
63  throw (
64  FederateIsExecutionMember,
65  CallNotAllowedFromWithinCallback,
66  RTIinternalError) = 0;
67 
68  // 4.5
69  virtual void createFederationExecution (
70  std::wstring const & federationExecutionName,
71  std::wstring const & fomModule,
72  std::wstring const & logicalTimeImplementationName = L"")
73  throw (
74  CouldNotCreateLogicalTimeFactory,
75  InconsistentFDD,
76  ErrorReadingFDD,
77  CouldNotOpenFDD,
78  FederationExecutionAlreadyExists,
79  NotConnected,
80  RTIinternalError) = 0;
81 
82  virtual void createFederationExecution (
83  std::wstring const & federationExecutionName,
84  std::vector<std::wstring> const & fomModules,
85  std::wstring const & logicalTimeImplementationName = L"")
86  throw (
87  CouldNotCreateLogicalTimeFactory,
88  InconsistentFDD,
89  ErrorReadingFDD,
90  CouldNotOpenFDD,
91  FederationExecutionAlreadyExists,
92  NotConnected,
93  RTIinternalError) = 0;
94 
95  virtual void createFederationExecutionWithMIM (
96  std::wstring const & federationExecutionName,
97  std::vector<std::wstring> const & fomModules,
98  std::wstring const & mimModule,
99  std::wstring const & logicalTimeImplementationName = L"")
100  throw (
101  CouldNotCreateLogicalTimeFactory,
102  InconsistentFDD,
103  ErrorReadingFDD,
104  CouldNotOpenFDD,
105  DesignatorIsHLAstandardMIM,
106  ErrorReadingMIM,
107  CouldNotOpenMIM,
108  FederationExecutionAlreadyExists,
109  NotConnected,
110  RTIinternalError) = 0;
111 
112  // 4.6
113  virtual void destroyFederationExecution (
114  std::wstring const & federationExecutionName)
115  throw (
116  FederatesCurrentlyJoined,
117  FederationExecutionDoesNotExist,
118  NotConnected,
119  RTIinternalError) = 0;
120 
121  // 4.7
122  virtual void listFederationExecutions ()
123  throw (
124  NotConnected,
125  RTIinternalError) = 0;
126 
127  // 4.9
128  virtual FederateHandle joinFederationExecution (
129  std::wstring const & federateType,
130  std::wstring const & federationExecutionName,
131  std::vector<std::wstring> const & additionalFomModules=std::vector<std::wstring>())
132  throw (
133  CouldNotCreateLogicalTimeFactory,
134  FederationExecutionDoesNotExist,
135  InconsistentFDD,
136  ErrorReadingFDD,
137  CouldNotOpenFDD,
138  SaveInProgress,
139  RestoreInProgress,
140  FederateAlreadyExecutionMember,
141  NotConnected,
142  CallNotAllowedFromWithinCallback,
143  RTIinternalError) = 0;
144 
145  virtual FederateHandle joinFederationExecution (
146  std::wstring const & federateName,
147  std::wstring const & federateType,
148  std::wstring const & federationExecutionName,
149  std::vector<std::wstring> const & additionalFomModules=std::vector<std::wstring>())
150  throw (
151  CouldNotCreateLogicalTimeFactory,
152  FederateNameAlreadyInUse,
153  FederationExecutionDoesNotExist,
154  InconsistentFDD,
155  ErrorReadingFDD,
156  CouldNotOpenFDD,
157  SaveInProgress,
158  RestoreInProgress,
159  FederateAlreadyExecutionMember,
160  NotConnected,
161  CallNotAllowedFromWithinCallback,
162  RTIinternalError) = 0;
163 
164  // 4.10
165  virtual void resignFederationExecution (
166  ResignAction resignAction)
167  throw (
168  InvalidResignAction,
169  OwnershipAcquisitionPending,
170  FederateOwnsAttributes,
171  FederateNotExecutionMember,
172  NotConnected,
173  CallNotAllowedFromWithinCallback,
174  RTIinternalError) = 0;
175 
176  // 4.11
177  virtual void registerFederationSynchronizationPoint (
178  std::wstring const & label,
179  VariableLengthData const & theUserSuppliedTag)
180  throw (
181  SaveInProgress,
182  RestoreInProgress,
183  FederateNotExecutionMember,
184  NotConnected,
185  RTIinternalError) = 0;
186 
187  virtual void registerFederationSynchronizationPoint (
188  std::wstring const & label,
189  VariableLengthData const & theUserSuppliedTag,
190  FederateHandleSet const & synchronizationSet)
191  throw (
192  InvalidFederateHandle,
193  SaveInProgress,
194  RestoreInProgress,
195  FederateNotExecutionMember,
196  NotConnected,
197  RTIinternalError) = 0;
198 
199  // 4.14
200  virtual void synchronizationPointAchieved (
201  std::wstring const & label,
202  bool successfully = true)
203  throw (
204  SynchronizationPointLabelNotAnnounced,
205  SaveInProgress,
206  RestoreInProgress,
207  FederateNotExecutionMember,
208  NotConnected,
209  RTIinternalError) = 0;
210 
211  // 4.16
212  virtual void requestFederationSave (
213  std::wstring const & label)
214  throw (
215  SaveInProgress,
216  RestoreInProgress,
217  FederateNotExecutionMember,
218  NotConnected,
219  RTIinternalError) = 0;
220 
221  virtual void requestFederationSave (
222  std::wstring const & label,
223  LogicalTime const & theTime)
224  throw (
225  LogicalTimeAlreadyPassed,
226  InvalidLogicalTime,
227  FederateUnableToUseTime,
228  SaveInProgress,
229  RestoreInProgress,
230  FederateNotExecutionMember,
231  NotConnected,
232  RTIinternalError) = 0;
233 
234  // 4.18
235  virtual void federateSaveBegun ()
236  throw (
237  SaveNotInitiated,
238  RestoreInProgress,
239  FederateNotExecutionMember,
240  NotConnected,
241  RTIinternalError) = 0;
242 
243  // 4.19
244  virtual void federateSaveComplete ()
245  throw (
246  FederateHasNotBegunSave,
247  RestoreInProgress,
248  FederateNotExecutionMember,
249  NotConnected,
250  RTIinternalError) = 0;
251 
252  virtual void federateSaveNotComplete ()
253  throw (
254  FederateHasNotBegunSave,
255  RestoreInProgress,
256  FederateNotExecutionMember,
257  NotConnected,
258  RTIinternalError) = 0;
259 
260  // 4.21
261  virtual void abortFederationSave ()
262  throw (
263  SaveNotInProgress,
264  FederateNotExecutionMember,
265  NotConnected,
266  RTIinternalError) = 0;
267 
268  // 4.22
269  virtual void queryFederationSaveStatus ()
270  throw (
271  RestoreInProgress,
272  FederateNotExecutionMember,
273  NotConnected,
274  RTIinternalError) = 0;
275 
276  // 4.24
277  virtual void requestFederationRestore (
278  std::wstring const & label)
279  throw (
280  SaveInProgress,
281  RestoreInProgress,
282  FederateNotExecutionMember,
283  NotConnected,
284  RTIinternalError) = 0;
285 
286  // 4.28
287  virtual void federateRestoreComplete ()
288  throw (
289  RestoreNotRequested,
290  SaveInProgress,
291  FederateNotExecutionMember,
292  NotConnected,
293  RTIinternalError) = 0;
294 
295  virtual void federateRestoreNotComplete ()
296  throw (
297  RestoreNotRequested,
298  SaveInProgress,
299  FederateNotExecutionMember,
300  NotConnected,
301  RTIinternalError) = 0;
302 
303  // 4.30
304  virtual void abortFederationRestore ()
305  throw (
306  RestoreNotInProgress,
307  FederateNotExecutionMember,
308  NotConnected,
309  RTIinternalError) = 0;
310 
311  // 4.31
312  virtual void queryFederationRestoreStatus ()
313  throw (
314  SaveInProgress,
315  FederateNotExecutionMember,
316  NotConnected,
317  RTIinternalError) = 0;
318 
320  // Declaration Management Services //
322 
323  // 5.2
324  virtual void publishObjectClassAttributes (
325  ObjectClassHandle theClass,
326  AttributeHandleSet const & attributeList)
327  throw (
328  AttributeNotDefined,
329  ObjectClassNotDefined,
330  SaveInProgress,
331  RestoreInProgress,
332  FederateNotExecutionMember,
333  NotConnected,
334  RTIinternalError) = 0;
335 
336  // 5.3
337  virtual void unpublishObjectClass (
338  ObjectClassHandle theClass)
339  throw (
340  OwnershipAcquisitionPending,
341  ObjectClassNotDefined,
342  SaveInProgress,
343  RestoreInProgress,
344  FederateNotExecutionMember,
345  NotConnected,
346  RTIinternalError) = 0;
347 
348  virtual void unpublishObjectClassAttributes (
349  ObjectClassHandle theClass,
350  AttributeHandleSet const & attributeList)
351  throw (
352  OwnershipAcquisitionPending,
353  AttributeNotDefined,
354  ObjectClassNotDefined,
355  SaveInProgress,
356  RestoreInProgress,
357  FederateNotExecutionMember,
358  NotConnected,
359  RTIinternalError) = 0;
360 
361  // 5.4
362  virtual void publishInteractionClass (
363  InteractionClassHandle theInteraction)
364  throw (
365  InteractionClassNotDefined,
366  SaveInProgress,
367  RestoreInProgress,
368  FederateNotExecutionMember,
369  NotConnected,
370  RTIinternalError) = 0;
371 
372  // 5.5
373  virtual void unpublishInteractionClass (
374  InteractionClassHandle theInteraction)
375  throw (
376  InteractionClassNotDefined,
377  SaveInProgress,
378  RestoreInProgress,
379  FederateNotExecutionMember,
380  NotConnected,
381  RTIinternalError) = 0;
382 
383  // 5.6
384  virtual void subscribeObjectClassAttributes (
385  ObjectClassHandle theClass,
386  AttributeHandleSet const & attributeList,
387  bool active = true,
388  std::wstring const & updateRateDesignator = L"")
389  throw (
390  AttributeNotDefined,
391  ObjectClassNotDefined,
392  InvalidUpdateRateDesignator,
393  SaveInProgress,
394  RestoreInProgress,
395  FederateNotExecutionMember,
396  NotConnected,
397  RTIinternalError) = 0;
398 
399  // 5.7
400  virtual void unsubscribeObjectClass (
401  ObjectClassHandle theClass)
402  throw (
403  ObjectClassNotDefined,
404  SaveInProgress,
405  RestoreInProgress,
406  FederateNotExecutionMember,
407  NotConnected,
408  RTIinternalError) = 0;
409 
410  virtual void unsubscribeObjectClassAttributes (
411  ObjectClassHandle theClass,
412  AttributeHandleSet const & attributeList)
413  throw (
414  AttributeNotDefined,
415  ObjectClassNotDefined,
416  SaveInProgress,
417  RestoreInProgress,
418  FederateNotExecutionMember,
419  NotConnected,
420  RTIinternalError) = 0;
421 
422  // 5.8
423  virtual void subscribeInteractionClass (
424  InteractionClassHandle theClass,
425  bool active = true)
426  throw (
427  FederateServiceInvocationsAreBeingReportedViaMOM,
428  InteractionClassNotDefined,
429  SaveInProgress,
430  RestoreInProgress,
431  FederateNotExecutionMember,
432  NotConnected,
433  RTIinternalError) = 0;
434 
435  // 5.9
436  virtual void unsubscribeInteractionClass (
437  InteractionClassHandle theClass)
438  throw (
439  InteractionClassNotDefined,
440  SaveInProgress,
441  RestoreInProgress,
442  FederateNotExecutionMember,
443  NotConnected,
444  RTIinternalError) = 0;
445 
447  // Object Management Services //
449 
450  // 6.2
451  virtual void reserveObjectInstanceName (
452  std::wstring const & theObjectInstanceName)
453  throw (
454  IllegalName,
455  SaveInProgress,
456  RestoreInProgress,
457  FederateNotExecutionMember,
458  NotConnected,
459  RTIinternalError) = 0;
460 
461  // 6.4
462  virtual void releaseObjectInstanceName (
463  std::wstring const & theObjectInstanceName)
464  throw (
465  ObjectInstanceNameNotReserved,
466  SaveInProgress,
467  RestoreInProgress,
468  FederateNotExecutionMember,
469  NotConnected,
470  RTIinternalError) = 0;
471 
472  // 6.5
473  virtual void reserveMultipleObjectInstanceName (
474  std::set<std::wstring> const & theObjectInstanceNames)
475  throw (
476  IllegalName,
477  NameSetWasEmpty,
478  SaveInProgress,
479  RestoreInProgress,
480  FederateNotExecutionMember,
481  NotConnected,
482  RTIinternalError) = 0;
483 
484  // 6.7
485  virtual void releaseMultipleObjectInstanceName (
486  std::set<std::wstring> const & theObjectInstanceNames)
487  throw (
488  ObjectInstanceNameNotReserved,
489  SaveInProgress,
490  RestoreInProgress,
491  FederateNotExecutionMember,
492  NotConnected,
493  RTIinternalError) = 0;
494 
495  // 6.8
496  virtual ObjectInstanceHandle registerObjectInstance (
497  ObjectClassHandle theClass)
498  throw (
499  ObjectClassNotPublished,
500  ObjectClassNotDefined,
501  SaveInProgress,
502  RestoreInProgress,
503  FederateNotExecutionMember,
504  NotConnected,
505  RTIinternalError) = 0;
506 
507  virtual ObjectInstanceHandle registerObjectInstance (
508  ObjectClassHandle theClass,
509  std::wstring const & theObjectInstanceName)
510  throw (
511  ObjectInstanceNameInUse,
512  ObjectInstanceNameNotReserved,
513  ObjectClassNotPublished,
514  ObjectClassNotDefined,
515  SaveInProgress,
516  RestoreInProgress,
517  FederateNotExecutionMember,
518  NotConnected,
519  RTIinternalError) = 0;
520 
521  // 6.10
522  virtual void updateAttributeValues (
523  ObjectInstanceHandle theObject,
524  AttributeHandleValueMap const & theAttributeValues,
525  VariableLengthData const & theUserSuppliedTag)
526  throw (
527  AttributeNotOwned,
528  AttributeNotDefined,
529  ObjectInstanceNotKnown,
530  SaveInProgress,
531  RestoreInProgress,
532  FederateNotExecutionMember,
533  NotConnected,
534  RTIinternalError) = 0;
535 
536  virtual MessageRetractionHandle updateAttributeValues (
537  ObjectInstanceHandle theObject,
538  AttributeHandleValueMap const & theAttributeValues,
539  VariableLengthData const & theUserSuppliedTag,
540  LogicalTime const & theTime)
541  throw (
542  InvalidLogicalTime,
543  AttributeNotOwned,
544  AttributeNotDefined,
545  ObjectInstanceNotKnown,
546  SaveInProgress,
547  RestoreInProgress,
548  FederateNotExecutionMember,
549  NotConnected,
550  RTIinternalError) = 0;
551 
552  // 6.12
553  virtual void sendInteraction (
554  InteractionClassHandle theInteraction,
555  ParameterHandleValueMap const & theParameterValues,
556  VariableLengthData const & theUserSuppliedTag)
557  throw (
558  InteractionClassNotPublished,
559  InteractionParameterNotDefined,
560  InteractionClassNotDefined,
561  SaveInProgress,
562  RestoreInProgress,
563  FederateNotExecutionMember,
564  NotConnected,
565  RTIinternalError) = 0;
566 
567  virtual MessageRetractionHandle sendInteraction (
568  InteractionClassHandle theInteraction,
569  ParameterHandleValueMap const & theParameterValues,
570  VariableLengthData const & theUserSuppliedTag,
571  LogicalTime const & theTime)
572  throw (
573  InvalidLogicalTime,
574  InteractionClassNotPublished,
575  InteractionParameterNotDefined,
576  InteractionClassNotDefined,
577  SaveInProgress,
578  RestoreInProgress,
579  FederateNotExecutionMember,
580  NotConnected,
581  RTIinternalError) = 0;
582 
583  // 6.14
584  virtual void deleteObjectInstance (
585  ObjectInstanceHandle theObject,
586  VariableLengthData const & theUserSuppliedTag)
587  throw (
588  DeletePrivilegeNotHeld,
589  ObjectInstanceNotKnown,
590  SaveInProgress,
591  RestoreInProgress,
592  FederateNotExecutionMember,
593  NotConnected,
594  RTIinternalError) = 0;
595 
596  virtual MessageRetractionHandle deleteObjectInstance (
597  ObjectInstanceHandle theObject,
598  VariableLengthData const & theUserSuppliedTag,
599  LogicalTime const & theTime)
600  throw (
601  InvalidLogicalTime,
602  DeletePrivilegeNotHeld,
603  ObjectInstanceNotKnown,
604  SaveInProgress,
605  RestoreInProgress,
606  FederateNotExecutionMember,
607  NotConnected,
608  RTIinternalError) = 0;
609 
610  // 6.16
611  virtual void localDeleteObjectInstance (
612  ObjectInstanceHandle theObject)
613  throw (
614  OwnershipAcquisitionPending,
615  FederateOwnsAttributes,
616  ObjectInstanceNotKnown,
617  SaveInProgress,
618  RestoreInProgress,
619  FederateNotExecutionMember,
620  NotConnected,
621  RTIinternalError) = 0;
622 
623  // 6.19
624  virtual void requestAttributeValueUpdate (
625  ObjectInstanceHandle theObject,
626  AttributeHandleSet const & theAttributes,
627  VariableLengthData const & theUserSuppliedTag)
628  throw (
629  AttributeNotDefined,
630  ObjectInstanceNotKnown,
631  SaveInProgress,
632  RestoreInProgress,
633  FederateNotExecutionMember,
634  NotConnected,
635  RTIinternalError) = 0;
636 
637  virtual void requestAttributeValueUpdate (
638  ObjectClassHandle theClass,
639  AttributeHandleSet const & theAttributes,
640  VariableLengthData const & theUserSuppliedTag)
641  throw (
642  AttributeNotDefined,
643  ObjectClassNotDefined,
644  SaveInProgress,
645  RestoreInProgress,
646  FederateNotExecutionMember,
647  NotConnected,
648  RTIinternalError) = 0;
649 
650  // 6.23
651  virtual void requestAttributeTransportationTypeChange (
652  ObjectInstanceHandle theObject,
653  AttributeHandleSet const & theAttributes,
654  TransportationType theType)
655  throw (
656  AttributeAlreadyBeingChanged,
657  AttributeNotOwned,
658  AttributeNotDefined,
659  ObjectInstanceNotKnown,
660  InvalidTransportationType,
661  SaveInProgress,
662  RestoreInProgress,
663  FederateNotExecutionMember,
664  NotConnected,
665  RTIinternalError) = 0;
666 
667  // 6.25
668  virtual void queryAttributeTransportationType (
669  ObjectInstanceHandle theObject,
670  AttributeHandle theAttribute)
671  throw (
672  AttributeNotDefined,
673  ObjectInstanceNotKnown,
674  SaveInProgress,
675  RestoreInProgress,
676  FederateNotExecutionMember,
677  NotConnected,
678  RTIinternalError) = 0;
679 
680  // 6.27
681  virtual void requestInteractionTransportationTypeChange (
682  InteractionClassHandle theClass,
683  TransportationType theType)
684  throw (
685  InteractionClassAlreadyBeingChanged,
686  InteractionClassNotPublished,
687  InteractionClassNotDefined,
688  InvalidTransportationType,
689  SaveInProgress,
690  RestoreInProgress,
691  FederateNotExecutionMember,
692  NotConnected,
693  RTIinternalError) = 0;
694 
695  // 6.29
696  virtual void queryInteractionTransportationType (
697  FederateHandle theFederate,
698  InteractionClassHandle theInteraction)
699  throw (
700  InteractionClassNotDefined,
701  SaveInProgress,
702  RestoreInProgress,
703  FederateNotExecutionMember,
704  NotConnected,
705  RTIinternalError) = 0;
706 
707 
709  // Ownership Management Services //
711 
712  // 7.2
713  virtual void unconditionalAttributeOwnershipDivestiture (
714  ObjectInstanceHandle theObject,
715  AttributeHandleSet const & theAttributes)
716  throw (
717  AttributeNotOwned,
718  AttributeNotDefined,
719  ObjectInstanceNotKnown,
720  SaveInProgress,
721  RestoreInProgress,
722  FederateNotExecutionMember,
723  NotConnected,
724  RTIinternalError) = 0;
725 
726  // 7.3
727  virtual void negotiatedAttributeOwnershipDivestiture (
728  ObjectInstanceHandle theObject,
729  AttributeHandleSet const & theAttributes,
730  VariableLengthData const & theUserSuppliedTag)
731  throw (
732  AttributeAlreadyBeingDivested,
733  AttributeNotOwned,
734  AttributeNotDefined,
735  ObjectInstanceNotKnown,
736  SaveInProgress,
737  RestoreInProgress,
738  FederateNotExecutionMember,
739  NotConnected,
740  RTIinternalError) = 0;
741 
742  // 7.6
743  virtual void confirmDivestiture (
744  ObjectInstanceHandle theObject,
745  AttributeHandleSet const & confirmedAttributes,
746  VariableLengthData const & theUserSuppliedTag)
747  throw (
748  NoAcquisitionPending,
749  AttributeDivestitureWasNotRequested,
750  AttributeNotOwned,
751  AttributeNotDefined,
752  ObjectInstanceNotKnown,
753  SaveInProgress,
754  RestoreInProgress,
755  FederateNotExecutionMember,
756  NotConnected,
757  RTIinternalError) = 0;
758 
759  // 7.8
760  virtual void attributeOwnershipAcquisition (
761  ObjectInstanceHandle theObject,
762  AttributeHandleSet const & desiredAttributes,
763  VariableLengthData const & theUserSuppliedTag)
764  throw (
765  AttributeNotPublished,
766  ObjectClassNotPublished,
767  FederateOwnsAttributes,
768  AttributeNotDefined,
769  ObjectInstanceNotKnown,
770  SaveInProgress,
771  RestoreInProgress,
772  FederateNotExecutionMember,
773  NotConnected,
774  RTIinternalError) = 0;
775 
776  // 7.9
777  virtual void attributeOwnershipAcquisitionIfAvailable (
778  ObjectInstanceHandle theObject,
779  AttributeHandleSet const & desiredAttributes)
780  throw (
781  AttributeAlreadyBeingAcquired,
782  AttributeNotPublished,
783  ObjectClassNotPublished,
784  FederateOwnsAttributes,
785  AttributeNotDefined,
786  ObjectInstanceNotKnown,
787  SaveInProgress,
788  RestoreInProgress,
789  FederateNotExecutionMember,
790  NotConnected,
791  RTIinternalError) = 0;
792 
793  // 7.12
794  virtual void attributeOwnershipReleaseDenied (
795  ObjectInstanceHandle theObject,
796  AttributeHandleSet const & theAttributes)
797  throw (
798  AttributeNotOwned,
799  AttributeNotDefined,
800  ObjectInstanceNotKnown,
801  SaveInProgress,
802  RestoreInProgress,
803  FederateNotExecutionMember,
804  NotConnected,
805  RTIinternalError) = 0;
806 
807  // 7.13
808  virtual void attributeOwnershipDivestitureIfWanted (
809  ObjectInstanceHandle theObject,
810  AttributeHandleSet const & theAttributes,
811  AttributeHandleSet & theDivestedAttributes) // filled by RTI
812  throw (
813  AttributeNotOwned,
814  AttributeNotDefined,
815  ObjectInstanceNotKnown,
816  SaveInProgress,
817  RestoreInProgress,
818  FederateNotExecutionMember,
819  NotConnected,
820  RTIinternalError) = 0;
821 
822  // 7.14
823  virtual void cancelNegotiatedAttributeOwnershipDivestiture (
824  ObjectInstanceHandle theObject,
825  AttributeHandleSet const & theAttributes)
826  throw (
827  AttributeDivestitureWasNotRequested,
828  AttributeNotOwned,
829  AttributeNotDefined,
830  ObjectInstanceNotKnown,
831  SaveInProgress,
832  RestoreInProgress,
833  FederateNotExecutionMember,
834  NotConnected,
835  RTIinternalError) = 0;
836 
837  // 7.15
838  virtual void cancelAttributeOwnershipAcquisition (
839  ObjectInstanceHandle theObject,
840  AttributeHandleSet const & theAttributes)
841  throw (
842  AttributeAcquisitionWasNotRequested,
843  AttributeAlreadyOwned,
844  AttributeNotDefined,
845  ObjectInstanceNotKnown,
846  SaveInProgress,
847  RestoreInProgress,
848  FederateNotExecutionMember,
849  NotConnected,
850  RTIinternalError) = 0;
851 
852  // 7.17
853  virtual void queryAttributeOwnership (
854  ObjectInstanceHandle theObject,
855  AttributeHandle theAttribute)
856  throw (
857  AttributeNotDefined,
858  ObjectInstanceNotKnown,
859  SaveInProgress,
860  RestoreInProgress,
861  FederateNotExecutionMember,
862  NotConnected,
863  RTIinternalError) = 0;
864 
865  // 7.19
866  virtual bool isAttributeOwnedByFederate (
867  ObjectInstanceHandle theObject,
868  AttributeHandle theAttribute)
869  throw (
870  AttributeNotDefined,
871  ObjectInstanceNotKnown,
872  SaveInProgress,
873  RestoreInProgress,
874  FederateNotExecutionMember,
875  NotConnected,
876  RTIinternalError) = 0;
877 
879  // Time Management Services //
881 
882  // 8.2
883  virtual void enableTimeRegulation (
884  LogicalTimeInterval const & theLookahead)
885  throw (
886  InvalidLookahead,
887  InTimeAdvancingState,
888  RequestForTimeRegulationPending,
889  TimeRegulationAlreadyEnabled,
890  SaveInProgress,
891  RestoreInProgress,
892  FederateNotExecutionMember,
893  NotConnected,
894  RTIinternalError) = 0;
895 
896  // 8.4
897  virtual void disableTimeRegulation ()
898  throw (
899  TimeRegulationIsNotEnabled,
900  SaveInProgress,
901  RestoreInProgress,
902  FederateNotExecutionMember,
903  NotConnected,
904  RTIinternalError) = 0;
905 
906  // 8.5
907  virtual void enableTimeConstrained ()
908  throw (
909  InTimeAdvancingState,
910  RequestForTimeConstrainedPending,
911  TimeConstrainedAlreadyEnabled,
912  SaveInProgress,
913  RestoreInProgress,
914  FederateNotExecutionMember,
915  NotConnected,
916  RTIinternalError) = 0;
917 
918  // 8.7
919  virtual void disableTimeConstrained ()
920  throw (
921  TimeConstrainedIsNotEnabled,
922  SaveInProgress,
923  RestoreInProgress,
924  FederateNotExecutionMember,
925  NotConnected,
926  RTIinternalError) = 0;
927 
928  // 8.8
929  virtual void timeAdvanceRequest (
930  LogicalTime const & theTime)
931  throw (
932  LogicalTimeAlreadyPassed,
933  InvalidLogicalTime,
934  InTimeAdvancingState,
935  RequestForTimeRegulationPending,
936  RequestForTimeConstrainedPending,
937  SaveInProgress,
938  RestoreInProgress,
939  FederateNotExecutionMember,
940  NotConnected,
941  RTIinternalError) = 0;
942 
943  // 8.9
944  virtual void timeAdvanceRequestAvailable (
945  LogicalTime const & theTime)
946  throw (
947  LogicalTimeAlreadyPassed,
948  InvalidLogicalTime,
949  InTimeAdvancingState,
950  RequestForTimeRegulationPending,
951  RequestForTimeConstrainedPending,
952  SaveInProgress,
953  RestoreInProgress,
954  FederateNotExecutionMember,
955  NotConnected,
956  RTIinternalError) = 0;
957 
958  // 8.10
959  virtual void nextMessageRequest (
960  LogicalTime const & theTime)
961  throw (
962  LogicalTimeAlreadyPassed,
963  InvalidLogicalTime,
964  InTimeAdvancingState,
965  RequestForTimeRegulationPending,
966  RequestForTimeConstrainedPending,
967  SaveInProgress,
968  RestoreInProgress,
969  FederateNotExecutionMember,
970  NotConnected,
971  RTIinternalError) = 0;
972 
973  // 8.11
974  virtual void nextMessageRequestAvailable (
975  LogicalTime const & theTime)
976  throw (
977  LogicalTimeAlreadyPassed,
978  InvalidLogicalTime,
979  InTimeAdvancingState,
980  RequestForTimeRegulationPending,
981  RequestForTimeConstrainedPending,
982  SaveInProgress,
983  RestoreInProgress,
984  FederateNotExecutionMember,
985  NotConnected,
986  RTIinternalError) = 0;
987 
988  // 8.12
989  virtual void flushQueueRequest (
990  LogicalTime const & theTime)
991  throw (
992  LogicalTimeAlreadyPassed,
993  InvalidLogicalTime,
994  InTimeAdvancingState,
995  RequestForTimeRegulationPending,
996  RequestForTimeConstrainedPending,
997  SaveInProgress,
998  RestoreInProgress,
999  FederateNotExecutionMember,
1000  NotConnected,
1001  RTIinternalError) = 0;
1002 
1003  // 8.14
1004  virtual void enableAsynchronousDelivery ()
1005  throw (
1006  AsynchronousDeliveryAlreadyEnabled,
1007  SaveInProgress,
1008  RestoreInProgress,
1009  FederateNotExecutionMember,
1010  NotConnected,
1011  RTIinternalError) = 0;
1012 
1013  // 8.15
1014  virtual void disableAsynchronousDelivery ()
1015  throw (
1016  AsynchronousDeliveryAlreadyDisabled,
1017  SaveInProgress,
1018  RestoreInProgress,
1019  FederateNotExecutionMember,
1020  NotConnected,
1021  RTIinternalError) = 0;
1022 
1023  // 8.16
1024  virtual bool queryGALT (LogicalTime & theTime)
1025  throw (
1026  SaveInProgress,
1027  RestoreInProgress,
1028  FederateNotExecutionMember,
1029  NotConnected,
1030  RTIinternalError) = 0;
1031 
1032  // 8.17
1033  virtual void queryLogicalTime (LogicalTime & theTime)
1034  throw (
1035  SaveInProgress,
1036  RestoreInProgress,
1037  FederateNotExecutionMember,
1038  NotConnected,
1039  RTIinternalError) = 0;
1040 
1041  // 8.18
1042  virtual bool queryLITS (LogicalTime & theTime)
1043  throw (
1044  SaveInProgress,
1045  RestoreInProgress,
1046  FederateNotExecutionMember,
1047  NotConnected,
1048  RTIinternalError) = 0;
1049 
1050  // 8.19
1051  virtual void modifyLookahead (
1052  LogicalTimeInterval const & theLookahead)
1053  throw (
1054  InvalidLookahead,
1055  InTimeAdvancingState,
1056  TimeRegulationIsNotEnabled,
1057  SaveInProgress,
1058  RestoreInProgress,
1059  FederateNotExecutionMember,
1060  NotConnected,
1061  RTIinternalError) = 0;
1062 
1063  // 8.20
1064  virtual void queryLookahead (LogicalTimeInterval & interval)
1065  throw (
1066  TimeRegulationIsNotEnabled,
1067  SaveInProgress,
1068  RestoreInProgress,
1069  FederateNotExecutionMember,
1070  NotConnected,
1071  RTIinternalError) = 0;
1072 
1073  // 8.21
1074  virtual void retract (
1075  MessageRetractionHandle theHandle)
1076  throw (
1077  MessageCanNoLongerBeRetracted,
1078  InvalidMessageRetractionHandle,
1079  TimeRegulationIsNotEnabled,
1080  SaveInProgress,
1081  RestoreInProgress,
1082  FederateNotExecutionMember,
1083  NotConnected,
1084  RTIinternalError) = 0;
1085 
1086  // 8.23
1087  virtual void changeAttributeOrderType (
1088  ObjectInstanceHandle theObject,
1089  AttributeHandleSet const & theAttributes,
1090  OrderType theType)
1091  throw (
1092  AttributeNotOwned,
1093  AttributeNotDefined,
1094  ObjectInstanceNotKnown,
1095  SaveInProgress,
1096  RestoreInProgress,
1097  FederateNotExecutionMember,
1098  NotConnected,
1099  RTIinternalError) = 0;
1100 
1101  // 8.24
1102  virtual void changeInteractionOrderType (
1103  InteractionClassHandle theClass,
1104  OrderType theType)
1105  throw (
1106  InteractionClassNotPublished,
1107  InteractionClassNotDefined,
1108  SaveInProgress,
1109  RestoreInProgress,
1110  FederateNotExecutionMember,
1111  NotConnected,
1112  RTIinternalError) = 0;
1113 
1115  // Data Distribution Management //
1117 
1118  // 9.2
1119  virtual RegionHandle createRegion (
1120  DimensionHandleSet const & theDimensions)
1121  throw (
1122  InvalidDimensionHandle,
1123  SaveInProgress,
1124  RestoreInProgress,
1125  FederateNotExecutionMember,
1126  NotConnected,
1127  RTIinternalError) = 0;
1128 
1129  // 9.3
1130  virtual void commitRegionModifications (
1131  RegionHandleSet const & theRegionHandleSet)
1132  throw (
1133  RegionNotCreatedByThisFederate,
1134  InvalidRegion,
1135  SaveInProgress,
1136  RestoreInProgress,
1137  FederateNotExecutionMember,
1138  NotConnected,
1139  RTIinternalError) = 0;
1140 
1141  // 9.4
1142  virtual void deleteRegion (
1143  RegionHandle const & theRegion)
1144  throw (
1145  RegionInUseForUpdateOrSubscription,
1146  RegionNotCreatedByThisFederate,
1147  InvalidRegion,
1148  SaveInProgress,
1149  RestoreInProgress,
1150  FederateNotExecutionMember,
1151  NotConnected,
1152  RTIinternalError) = 0;
1153 
1154  // 9.5
1155  virtual ObjectInstanceHandle registerObjectInstanceWithRegions (
1156  ObjectClassHandle theClass,
1157  AttributeHandleSetRegionHandleSetPairVector const &
1158  theAttributeHandleSetRegionHandleSetPairVector)
1159  throw (
1160  InvalidRegionContext,
1161  RegionNotCreatedByThisFederate,
1162  InvalidRegion,
1163  AttributeNotPublished,
1164  ObjectClassNotPublished,
1165  AttributeNotDefined,
1166  ObjectClassNotDefined,
1167  SaveInProgress,
1168  RestoreInProgress,
1169  FederateNotExecutionMember,
1170  NotConnected,
1171  RTIinternalError) = 0;
1172 
1173  virtual ObjectInstanceHandle registerObjectInstanceWithRegions (
1174  ObjectClassHandle theClass,
1175  AttributeHandleSetRegionHandleSetPairVector const &
1176  theAttributeHandleSetRegionHandleSetPairVector,
1177  std::wstring const & theObjectInstanceName)
1178  throw (
1179  ObjectInstanceNameInUse,
1180  ObjectInstanceNameNotReserved,
1181  InvalidRegionContext,
1182  RegionNotCreatedByThisFederate,
1183  InvalidRegion,
1184  AttributeNotPublished,
1185  ObjectClassNotPublished,
1186  AttributeNotDefined,
1187  ObjectClassNotDefined,
1188  SaveInProgress,
1189  RestoreInProgress,
1190  FederateNotExecutionMember,
1191  NotConnected,
1192  RTIinternalError) = 0;
1193 
1194  // 9.6
1195  virtual void associateRegionsForUpdates (
1196  ObjectInstanceHandle theObject,
1197  AttributeHandleSetRegionHandleSetPairVector const &
1198  theAttributeHandleSetRegionHandleSetPairVector)
1199  throw (
1200  InvalidRegionContext,
1201  RegionNotCreatedByThisFederate,
1202  InvalidRegion,
1203  AttributeNotDefined,
1204  ObjectInstanceNotKnown,
1205  SaveInProgress,
1206  RestoreInProgress,
1207  FederateNotExecutionMember,
1208  NotConnected,
1209  RTIinternalError) = 0;
1210 
1211  // 9.7
1212  virtual void unassociateRegionsForUpdates (
1213  ObjectInstanceHandle theObject,
1214  AttributeHandleSetRegionHandleSetPairVector const &
1215  theAttributeHandleSetRegionHandleSetPairVector)
1216  throw (
1217  RegionNotCreatedByThisFederate,
1218  InvalidRegion,
1219  AttributeNotDefined,
1220  ObjectInstanceNotKnown,
1221  SaveInProgress,
1222  RestoreInProgress,
1223  FederateNotExecutionMember,
1224  NotConnected,
1225  RTIinternalError) = 0;
1226 
1227  // 9.8
1228  virtual void subscribeObjectClassAttributesWithRegions (
1229  ObjectClassHandle theClass,
1230  AttributeHandleSetRegionHandleSetPairVector const &
1231  theAttributeHandleSetRegionHandleSetPairVector,
1232  bool active = true,
1233  std::wstring const & updateRateDesignator = L"")
1234  throw (
1235  InvalidRegionContext,
1236  RegionNotCreatedByThisFederate,
1237  InvalidRegion,
1238  AttributeNotDefined,
1239  ObjectClassNotDefined,
1240  InvalidUpdateRateDesignator,
1241  SaveInProgress,
1242  RestoreInProgress,
1243  FederateNotExecutionMember,
1244  NotConnected,
1245  RTIinternalError) = 0;
1246 
1247 
1248  // 9.9
1249  virtual void unsubscribeObjectClassAttributesWithRegions (
1250  ObjectClassHandle theClass,
1251  AttributeHandleSetRegionHandleSetPairVector const &
1252  theAttributeHandleSetRegionHandleSetPairVector)
1253  throw (
1254  RegionNotCreatedByThisFederate,
1255  InvalidRegion,
1256  AttributeNotDefined,
1257  ObjectClassNotDefined,
1258  SaveInProgress,
1259  RestoreInProgress,
1260  FederateNotExecutionMember,
1261  NotConnected,
1262  RTIinternalError) = 0;
1263 
1264  // 9.10
1265  virtual void subscribeInteractionClassWithRegions (
1266  InteractionClassHandle theClass,
1267  RegionHandleSet const & theRegionHandleSet,
1268  bool active = true)
1269  throw (
1270  FederateServiceInvocationsAreBeingReportedViaMOM,
1271  InvalidRegionContext,
1272  RegionNotCreatedByThisFederate,
1273  InvalidRegion,
1274  InteractionClassNotDefined,
1275  SaveInProgress,
1276  RestoreInProgress,
1277  FederateNotExecutionMember,
1278  NotConnected,
1279  RTIinternalError) = 0;
1280 
1281  // 9.11
1282  virtual void unsubscribeInteractionClassWithRegions (
1283  InteractionClassHandle theClass,
1284  RegionHandleSet const & theRegionHandleSet)
1285  throw (
1286  RegionNotCreatedByThisFederate,
1287  InvalidRegion,
1288  InteractionClassNotDefined,
1289  SaveInProgress,
1290  RestoreInProgress,
1291  FederateNotExecutionMember,
1292  NotConnected,
1293  RTIinternalError) = 0;
1294 
1295  // 9.12
1296  virtual void sendInteractionWithRegions (
1297  InteractionClassHandle theInteraction,
1298  ParameterHandleValueMap const & theParameterValues,
1299  RegionHandleSet const & theRegionHandleSet,
1300  VariableLengthData const & theUserSuppliedTag)
1301  throw (
1302  InvalidRegionContext,
1303  RegionNotCreatedByThisFederate,
1304  InvalidRegion,
1305  InteractionClassNotPublished,
1306  InteractionParameterNotDefined,
1307  InteractionClassNotDefined,
1308  SaveInProgress,
1309  RestoreInProgress,
1310  FederateNotExecutionMember,
1311  NotConnected,
1312  RTIinternalError) = 0;
1313 
1314  virtual MessageRetractionHandle sendInteractionWithRegions (
1315  InteractionClassHandle theInteraction,
1316  ParameterHandleValueMap const & theParameterValues,
1317  RegionHandleSet const & theRegionHandleSet,
1318  VariableLengthData const & theUserSuppliedTag,
1319  LogicalTime const & theTime)
1320  throw (
1321  InvalidLogicalTime,
1322  InvalidRegionContext,
1323  RegionNotCreatedByThisFederate,
1324  InvalidRegion,
1325  InteractionClassNotPublished,
1326  InteractionParameterNotDefined,
1327  InteractionClassNotDefined,
1328  SaveInProgress,
1329  RestoreInProgress,
1330  FederateNotExecutionMember,
1331  NotConnected,
1332  RTIinternalError) = 0;
1333 
1334  // 9.13
1335  virtual void requestAttributeValueUpdateWithRegions (
1336  ObjectClassHandle theClass,
1337  AttributeHandleSetRegionHandleSetPairVector const & theSet,
1338  VariableLengthData const & theUserSuppliedTag)
1339  throw (
1340  InvalidRegionContext,
1341  RegionNotCreatedByThisFederate,
1342  InvalidRegion,
1343  AttributeNotDefined,
1344  ObjectClassNotDefined,
1345  SaveInProgress,
1346  RestoreInProgress,
1347  FederateNotExecutionMember,
1348  NotConnected,
1349  RTIinternalError) = 0;
1350 
1352  // RTI Support Services //
1354 
1355  // 10.2
1356  virtual ResignAction getAutomaticResignDirective ()
1357  throw (
1358  FederateNotExecutionMember,
1359  NotConnected,
1360  RTIinternalError) = 0;
1361 
1362  // 10.3
1363  virtual void setAutomaticResignDirective (
1364  ResignAction resignAction)
1365  throw (
1366  InvalidResignAction,
1367  FederateNotExecutionMember,
1368  NotConnected,
1369  RTIinternalError) = 0;
1370 
1371  // 10.4
1372  virtual FederateHandle getFederateHandle (
1373  std::wstring const & theName)
1374  throw (
1375  NameNotFound,
1376  FederateNotExecutionMember,
1377  NotConnected,
1378  RTIinternalError) = 0;
1379 
1380  // 10.5
1381  virtual std::wstring getFederateName (
1382  FederateHandle theHandle)
1383  throw (
1384  InvalidFederateHandle,
1385  FederateHandleNotKnown,
1386  FederateNotExecutionMember,
1387  NotConnected,
1388  RTIinternalError) = 0;
1389 
1390  // 10.6
1391  virtual ObjectClassHandle getObjectClassHandle (
1392  std::wstring const & theName)
1393  throw (
1394  NameNotFound,
1395  FederateNotExecutionMember,
1396  NotConnected,
1397  RTIinternalError) = 0;
1398 
1399  // 10.7
1400  virtual std::wstring getObjectClassName (
1401  ObjectClassHandle theHandle)
1402  throw (
1403  InvalidObjectClassHandle,
1404  FederateNotExecutionMember,
1405  NotConnected,
1406  RTIinternalError) = 0;
1407 
1408  // 10.8
1409  virtual ObjectClassHandle getKnownObjectClassHandle (
1410  ObjectInstanceHandle theObject)
1411  throw (
1412  ObjectInstanceNotKnown,
1413  FederateNotExecutionMember,
1414  NotConnected,
1415  RTIinternalError) = 0;
1416 
1417  // 10.9
1418  virtual ObjectInstanceHandle getObjectInstanceHandle (
1419  std::wstring const & theName)
1420  throw (
1421  ObjectInstanceNotKnown,
1422  FederateNotExecutionMember,
1423  NotConnected,
1424  RTIinternalError) = 0;
1425 
1426  // 10.10
1427  virtual std::wstring getObjectInstanceName (
1428  ObjectInstanceHandle theHandle)
1429  throw (
1430  ObjectInstanceNotKnown,
1431  FederateNotExecutionMember,
1432  NotConnected,
1433  RTIinternalError) = 0;
1434 
1435  // 10.11
1436  virtual AttributeHandle getAttributeHandle (
1437  ObjectClassHandle whichClass,
1438  std::wstring const & theAttributeName)
1439  throw (
1440  NameNotFound,
1441  InvalidObjectClassHandle,
1442  FederateNotExecutionMember,
1443  NotConnected,
1444  RTIinternalError) = 0;
1445 
1446  // 10.12
1447  virtual std::wstring getAttributeName (
1448  ObjectClassHandle whichClass,
1449  AttributeHandle theHandle)
1450  throw (
1451  AttributeNotDefined,
1452  InvalidAttributeHandle,
1453  InvalidObjectClassHandle,
1454  FederateNotExecutionMember,
1455  NotConnected,
1456  RTIinternalError) = 0;
1457 
1458  // 10.13
1459  virtual double getUpdateRateValue (
1460  std::wstring const & updateRateDesignator)
1461  throw (
1462  InvalidUpdateRateDesignator,
1463  FederateNotExecutionMember,
1464  NotConnected,
1465  RTIinternalError) = 0;
1466 
1467  // 10.14
1468  virtual double getUpdateRateValueForAttribute (
1469  ObjectInstanceHandle theObject,
1470  AttributeHandle theAttribute)
1471  throw (
1472  ObjectInstanceNotKnown,
1473  AttributeNotDefined,
1474  FederateNotExecutionMember,
1475  NotConnected,
1476  RTIinternalError) = 0;
1477 
1478  // 10.15
1479  virtual InteractionClassHandle getInteractionClassHandle (
1480  std::wstring const & theName)
1481  throw (
1482  NameNotFound,
1483  FederateNotExecutionMember,
1484  NotConnected,
1485  RTIinternalError) = 0;
1486 
1487  // 10.16
1488  virtual std::wstring getInteractionClassName (
1489  InteractionClassHandle theHandle)
1490  throw (
1491  InvalidInteractionClassHandle,
1492  FederateNotExecutionMember,
1493  NotConnected,
1494  RTIinternalError) = 0;
1495 
1496  // 10.17
1497  virtual ParameterHandle getParameterHandle (
1498  InteractionClassHandle whichClass,
1499  std::wstring const & theName)
1500  throw (
1501  NameNotFound,
1502  InvalidInteractionClassHandle,
1503  FederateNotExecutionMember,
1504  NotConnected,
1505  RTIinternalError) = 0;
1506 
1507  // 10.18
1508  virtual std::wstring getParameterName (
1509  InteractionClassHandle whichClass,
1510  ParameterHandle theHandle)
1511  throw (
1512  InteractionParameterNotDefined,
1513  InvalidParameterHandle,
1514  InvalidInteractionClassHandle,
1515  FederateNotExecutionMember,
1516  NotConnected,
1517  RTIinternalError) = 0;
1518 
1519  // 10.19
1520  virtual OrderType getOrderType (
1521  std::wstring const & orderName)
1522  throw (
1523  InvalidOrderName,
1524  FederateNotExecutionMember,
1525  NotConnected,
1526  RTIinternalError) = 0;
1527 
1528  // 10.20
1529  virtual std::wstring getOrderName (
1530  OrderType orderType)
1531  throw (
1532  InvalidOrderType,
1533  FederateNotExecutionMember,
1534  NotConnected,
1535  RTIinternalError) = 0;
1536 
1537  // 10.21
1538  virtual TransportationType getTransportationType (
1539  std::wstring const & transportationName)
1540  throw (
1541  InvalidTransportationName,
1542  FederateNotExecutionMember,
1543  NotConnected,
1544  RTIinternalError) = 0;
1545 
1546  // 10.22
1547  virtual std::wstring getTransportationName (
1548  TransportationType transportationType)
1549  throw (
1550  InvalidTransportationType,
1551  FederateNotExecutionMember,
1552  NotConnected,
1553  RTIinternalError) = 0;
1554 
1555  // 10.23
1556  virtual DimensionHandleSet getAvailableDimensionsForClassAttribute (
1557  ObjectClassHandle theClass,
1558  AttributeHandle theHandle)
1559  throw (
1560  AttributeNotDefined,
1561  InvalidAttributeHandle,
1562  InvalidObjectClassHandle,
1563  FederateNotExecutionMember,
1564  NotConnected,
1565  RTIinternalError) = 0;
1566 
1567  // 10.24
1568  virtual DimensionHandleSet getAvailableDimensionsForInteractionClass (
1569  InteractionClassHandle theClass)
1570  throw (
1571  InvalidInteractionClassHandle,
1572  FederateNotExecutionMember,
1573  NotConnected,
1574  RTIinternalError) = 0;
1575 
1576  // 10.25
1577  virtual DimensionHandle getDimensionHandle (
1578  std::wstring const & theName)
1579  throw (
1580  NameNotFound,
1581  FederateNotExecutionMember,
1582  NotConnected,
1583  RTIinternalError) = 0;
1584 
1585  // 10.26
1586  virtual std::wstring getDimensionName (
1587  DimensionHandle theHandle)
1588  throw (
1589  InvalidDimensionHandle,
1590  FederateNotExecutionMember,
1591  NotConnected,
1592  RTIinternalError) = 0;
1593 
1594  // 10.27
1595  virtual unsigned long getDimensionUpperBound (
1596  DimensionHandle theHandle)
1597  throw (
1598  InvalidDimensionHandle,
1599  FederateNotExecutionMember,
1600  NotConnected,
1601  RTIinternalError) = 0;
1602 
1603  // 10.28
1604  virtual DimensionHandleSet getDimensionHandleSet (
1605  RegionHandle theRegionHandle)
1606  throw (
1607  InvalidRegion,
1608  SaveInProgress,
1609  RestoreInProgress,
1610  FederateNotExecutionMember,
1611  NotConnected,
1612  RTIinternalError) = 0;
1613 
1614  // 10.29
1615  virtual RangeBounds getRangeBounds (
1616  RegionHandle theRegionHandle,
1617  DimensionHandle theDimensionHandle)
1618  throw (
1619  RegionDoesNotContainSpecifiedDimension,
1620  InvalidRegion,
1621  SaveInProgress,
1622  RestoreInProgress,
1623  FederateNotExecutionMember,
1624  NotConnected,
1625  RTIinternalError) = 0;
1626 
1627  // 10.30
1628  virtual void setRangeBounds (
1629  RegionHandle theRegionHandle,
1630  DimensionHandle theDimensionHandle,
1631  RangeBounds const & theRangeBounds)
1632  throw (
1633  InvalidRangeBound,
1634  RegionDoesNotContainSpecifiedDimension,
1635  RegionNotCreatedByThisFederate,
1636  InvalidRegion,
1637  SaveInProgress,
1638  RestoreInProgress,
1639  FederateNotExecutionMember,
1640  NotConnected,
1641  RTIinternalError) = 0;
1642 
1643  // 10.31
1644  virtual unsigned long normalizeFederateHandle (
1645  FederateHandle theFederateHandle)
1646  throw (
1647  InvalidFederateHandle,
1648  FederateNotExecutionMember,
1649  NotConnected,
1650  RTIinternalError) = 0;
1651 
1652  // 10.32
1653  virtual unsigned long normalizeServiceGroup (
1654  ServiceGroup theServiceGroup)
1655  throw (
1656  InvalidServiceGroup,
1657  FederateNotExecutionMember,
1658  NotConnected,
1659  RTIinternalError) = 0;
1660 
1661  // 10.33
1662  virtual void enableObjectClassRelevanceAdvisorySwitch ()
1663  throw (
1664  ObjectClassRelevanceAdvisorySwitchIsOn,
1665  SaveInProgress,
1666  RestoreInProgress,
1667  FederateNotExecutionMember,
1668  NotConnected,
1669  RTIinternalError) = 0;
1670 
1671  // 10.34
1672  virtual void disableObjectClassRelevanceAdvisorySwitch ()
1673  throw (
1674  ObjectClassRelevanceAdvisorySwitchIsOff,
1675  SaveInProgress,
1676  RestoreInProgress,
1677  FederateNotExecutionMember,
1678  NotConnected,
1679  RTIinternalError) = 0;
1680 
1681  // 10.35
1682  virtual void enableAttributeRelevanceAdvisorySwitch ()
1683  throw (
1684  AttributeRelevanceAdvisorySwitchIsOn,
1685  SaveInProgress,
1686  RestoreInProgress,
1687  FederateNotExecutionMember,
1688  NotConnected,
1689  RTIinternalError) = 0;
1690 
1691  // 10.36
1692  virtual void disableAttributeRelevanceAdvisorySwitch ()
1693  throw (
1694  AttributeRelevanceAdvisorySwitchIsOff,
1695  SaveInProgress,
1696  RestoreInProgress,
1697  FederateNotExecutionMember,
1698  NotConnected,
1699  RTIinternalError) = 0;
1700 
1701  // 10.37
1702  virtual void enableAttributeScopeAdvisorySwitch ()
1703  throw (
1704  AttributeScopeAdvisorySwitchIsOn,
1705  SaveInProgress,
1706  RestoreInProgress,
1707  FederateNotExecutionMember,
1708  NotConnected,
1709  RTIinternalError) = 0;
1710 
1711  // 10.38
1712  virtual void disableAttributeScopeAdvisorySwitch ()
1713  throw (
1714  AttributeScopeAdvisorySwitchIsOff,
1715  SaveInProgress,
1716  RestoreInProgress,
1717  FederateNotExecutionMember,
1718  NotConnected,
1719  RTIinternalError) = 0;
1720 
1721  // 10.39
1722  virtual void enableInteractionRelevanceAdvisorySwitch ()
1723  throw (
1724  InteractionRelevanceAdvisorySwitchIsOn,
1725  SaveInProgress,
1726  RestoreInProgress,
1727  FederateNotExecutionMember,
1728  NotConnected,
1729  RTIinternalError) = 0;
1730 
1731  // 10.40
1732  virtual void disableInteractionRelevanceAdvisorySwitch ()
1733  throw (
1734  InteractionRelevanceAdvisorySwitchIsOff,
1735  SaveInProgress,
1736  RestoreInProgress,
1737  FederateNotExecutionMember,
1738  NotConnected,
1739  RTIinternalError) = 0;
1740 
1741  // 10.41
1742  virtual bool evokeCallback (
1743  double approximateMinimumTimeInSeconds)
1744  throw (
1745  CallNotAllowedFromWithinCallback,
1746  RTIinternalError) = 0;
1747 
1748  // 10.42
1749  virtual bool evokeMultipleCallbacks (
1750  double approximateMinimumTimeInSeconds,
1751  double approximateMaximumTimeInSeconds)
1752  throw (
1753  CallNotAllowedFromWithinCallback,
1754  RTIinternalError) = 0;
1755 
1756  // 10.43
1757  virtual void enableCallbacks ()
1758  throw (
1759  SaveInProgress,
1760  RestoreInProgress,
1761  RTIinternalError) = 0;
1762 
1763  // 10.44
1764  virtual void disableCallbacks ()
1765  throw (
1766  SaveInProgress,
1767  RestoreInProgress,
1768  RTIinternalError) = 0;
1769 
1770  // API-specific services
1771 
1772  // Return instance of time factory being used by the federation
1773  virtual std::auto_ptr<LogicalTimeFactory> getTimeFactory () const
1774  throw (
1775  FederateNotExecutionMember,
1776  NotConnected,
1777  RTIinternalError) = 0;
1778 
1779  // Decode handles
1780  virtual FederateHandle decodeFederateHandle (
1781  VariableLengthData const & encodedValue) const
1782  throw (
1783  CouldNotDecode,
1784  FederateNotExecutionMember,
1785  NotConnected,
1786  RTIinternalError) = 0;
1787 
1788  virtual ObjectClassHandle decodeObjectClassHandle (
1789  VariableLengthData const & encodedValue) const
1790  throw (
1791  CouldNotDecode,
1792  FederateNotExecutionMember,
1793  NotConnected,
1794  RTIinternalError) = 0;
1795 
1796  virtual InteractionClassHandle decodeInteractionClassHandle (
1797  VariableLengthData const & encodedValue) const
1798  throw (
1799  CouldNotDecode,
1800  FederateNotExecutionMember,
1801  NotConnected,
1802  RTIinternalError) = 0;
1803 
1804  virtual ObjectInstanceHandle decodeObjectInstanceHandle (
1805  VariableLengthData const & encodedValue) const
1806  throw (
1807  CouldNotDecode,
1808  FederateNotExecutionMember,
1809  NotConnected,
1810  RTIinternalError) = 0;
1811 
1812  virtual AttributeHandle decodeAttributeHandle (
1813  VariableLengthData const & encodedValue) const
1814  throw (
1815  CouldNotDecode,
1816  FederateNotExecutionMember,
1817  NotConnected,
1818  RTIinternalError) = 0;
1819 
1820  virtual ParameterHandle decodeParameterHandle (
1821  VariableLengthData const & encodedValue) const
1822  throw (
1823  CouldNotDecode,
1824  FederateNotExecutionMember,
1825  NotConnected,
1826  RTIinternalError) = 0;
1827 
1828  virtual DimensionHandle decodeDimensionHandle (
1829  VariableLengthData const & encodedValue) const
1830  throw (
1831  CouldNotDecode,
1832  FederateNotExecutionMember,
1833  NotConnected,
1834  RTIinternalError) = 0;
1835 
1836  virtual MessageRetractionHandle decodeMessageRetractionHandle (
1837  VariableLengthData const & encodedValue) const
1838  throw (
1839  CouldNotDecode,
1840  FederateNotExecutionMember,
1841  NotConnected,
1842  RTIinternalError) = 0;
1843 
1844  virtual RegionHandle decodeRegionHandle (
1845  VariableLengthData const & encodedValue) const
1846  throw (
1847  CouldNotDecode,
1848  FederateNotExecutionMember,
1849  NotConnected,
1850  RTIinternalError) = 0;
1851 
1852 public:
1853 
1854  static RTI::RTIambassador * create();
1855 
1856 protected:
1857 
1858  std::auto_ptr<RTIambassador> myRtiAmb;
1860 };
1861 
1862 #endif
1863 #endif
1864 
1865 

Document ID: Generated on Wed Oct 23 22:25:48 EDT 2013 from SVN revision 132765
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)