VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vlFedTarget.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 *********************************************************************/
9 #pragma once
10 
11 #include <map>
12 #include <set>
13 #include <vector>
14 #include <cmath>
15 
16 #include "vlutil/vlMachineTypes.h"
17 #include "vlutil/vlString.h"
18 #include "vlutil/vlUtil.h"
19 #include "vlutil/vlSmartPointers.h"
21 
22 #include <mtl/fedTargetHelper.h>
23 
24 #ifdef DtUSE_UTILITIES_NAMESPACE
25 namespace DtUSE_UTILITIES_NAMESPACE
26 {
27 #endif
28 
29  typedef std::set<std::shared_ptr<DtUpdateRateType>, FomTypeCompare<DtUpdateRateType> > DtUpdateRateSetT;
30 
31  typedef std::set<DtString> DtNameSet;
32  typedef std::pair<DtString, DtString> DtNamePair;
33  typedef std::set<DtNamePair> DtNamePairSet;
34  typedef std::map<DtString, DtNamePairSet> DtNameToNamePairSetMap;
35  typedef std::map<DtString, DtNameSet> DtNameToNameSetMap;
36  typedef std::pair<DtString, DtNamePair> DtNameWithNamePair;
37  typedef std::set<DtNameWithNamePair> DtNameWithNamePair_Set;
38  typedef std::map< DtString, bool > DtSwitchesMap;
39 
40  typedef std::vector<DtString> DtNameVector;
41 
42  enum DtFomType
43  {
45  DtFom13 = 1,
46  DtFom1516 = 2,
49  };
50 
52  {
53  DtMergeFomTableUnknown = 0X00000000, // 0
54  DtMergeFomTableIdentification = 0X00000001, // 1
55  DtMergeFomTableObjectClass = 0X00000002, // 2
58  DtMergeFomTableDimensions = 0X00000010, // 16
59  DtMergeFomTableTime = 0X00000020, // 32
60  DtMergeFomTableUserDefinedTags = 0X00000040, // 64
61  DtMergeFomTableSyncPoints = 0X00000080, // 128
62  DtMergeFomTableTransportTypes = 0X00000100, // 256
63  DtMergeFomTableUpdateRates = 0X00000200, // 512
64  DtMergeFomTableSwitches = 0X00000400, // 1024
65  DtMergeFomTableBasicDataRepType = 0X00000800, // 2048
66  DtMergeFomTableSimpleDataType = 0X00001000, // 4096
67  DtMergeFomTableEnumeratedDataType = 0X00002000, // 8192
68  DtMergeFomTableArrayDataType = 0X00004000, // 16384
69  DtMergeFomTableFixedRecordDataType = 0X00008000, // 32768
70  DtMergeFomTableVariantRecordDataType = 0X00010000, // 65536
71  DtMergeFomTableReferenceType = 0X00020000, // 131072
72  DtMergeFomTableNotes = 0X00040000, // 262144
73  };
74 
75  #define DEFAULT_MERGE_MASK DtMergeFomTableObjectClass | DtMergeFomTableInteractionClass \
76  | DtMergeFomTableDimensions | DtMergeFomTableTime | DtMergeFomTableUserDefinedTags | DtMergeFomTableSyncPoints \
77  | DtMergeFomTableTransportTypes | DtMergeFomTableUpdateRates | DtMergeFomTableSwitches | DtMergeFomTableBasicDataRepType \
78  | DtMergeFomTableSimpleDataType | DtMergeFomTableEnumeratedDataType | DtMergeFomTableArrayDataType \
79  | DtMergeFomTableFixedRecordDataType | DtMergeFomTableVariantRecordDataType
80  //| DtMergeFomTableNotes (removed from defaults to hide merge issues in VRL 5.9.1 FOMs)
81  //| DtMergeFomTableReferenceType | DtMergeFomTableDirectedInteraction (not implemented yet)
82 
83 
85  {
89  };
90 
92  {
96  };
97 
99  {
103  };
104 
108  {
115  };
116 
117  typedef void (*fptr)(void *);
118 
123 
125  {
126  public:
127 
129  DtFedTarget();
130 
132  virtual ~DtFedTarget();
133 
135  DtFedTarget(const DtFedTarget& orig);
136 
138  DtFedTarget& operator=(const DtFedTarget& orig);
139 
141 
142  virtual void setFomType(DtFomType type);
143  virtual DtFomType fomType() const;
145 
147  virtual void addSpace(const char* name);
148 
151  virtual void addDimension(const char* SpaceName, const char* dimName);
152 
154  virtual void addDimension(const char* dimName, unsigned long upperBound,
155  unsigned long defaultLowerBound, unsigned long defaultUpperBound,
156  bool excluded, const DtString& normalization);
157 
160  virtual bool addInterClass(const char* name, const char* baseName,
161  DtTransportType transport, DtOrderType order, const char* space=0) = 0;
162 
165  virtual void addParameter(const char* className, const char* paramName) = 0;
166 
169  virtual bool addInteractionDimension(const char* interactionName, const char* dimension) = 0;
170 
173  virtual bool addObjClass(const char* name, const char* baseName) = 0;
174 
177  virtual bool addObjectDimension(const char* objectClassName, const char* dimension) = 0;
178 
181  virtual void addAttribute(const char* className, const char* attrName,
182  DtTransportType transport, DtOrderType order, DtSharingType sharing,
183  DtFomUpdateType updateType, const DtString& updateCondition,
184  DtOwnershipType ownershipType, const DtString& semantics, const char* spaceName=NULL ) = 0;
185 
188  virtual void addAttribute(const char* className, const char* attributeName,
189  DtTransportType transport, DtOrderType order, const char* space=0) = 0;
190 
193  virtual bool addAttributeDimension(const char* className, const char* attrName, const char* dimName) = 0;
194 
195  //-------------------------------------------------------------------------
197 
198 
199  virtual bool autoProvide() const;
200  virtual void setAutoProvide(bool value);
201 
202  virtual bool conveyRegionDesignatorSets() const;
203  virtual void setConveyRegionDesignatorSets(bool value);
204 
205  virtual bool conveyProducingFederate() const;
206  virtual void setConveyProducingFederate(bool value);
207 
208  virtual bool attributeScopeAdvisory() const;
209  virtual void setAttributeScopeAdvisory(bool value);
210 
211  virtual bool attributeRelevanceAdvisory() const;
212  virtual void setAttributeRelevanceAdvisory(bool value);
213 
214  virtual bool objectClassRelevanceAdvisory() const;
215  virtual void setObjectClassRelevanceAdvisory(bool value);
216 
217  virtual bool interactionRelevanceAdvisory() const;
218  virtual void setInteractionRelevanceAdvisory(bool value);
219 
220  virtual bool serviceReporting() const;
221  virtual void setServiceReporting(bool value);
222 
223  virtual bool exceptionReporting() const;
224  virtual void setExceptionReporting(bool value);
225 
226  virtual bool delaySubscriptionEvaluation() const;
227  virtual void setDelaySubscriptionEvaluation(bool value);
228 
229  virtual DtResignAction automaticResignAction() const;
230  virtual void setAutomaticResignAction(DtResignAction value);
231 
232  virtual bool nonRegulatedGrant() const;
233  virtual void setNonRegulatedGrant(bool value);
234 
235  virtual bool sendServiceReportsToFile() const;
236  virtual void setSendServiceReportsToFile(bool value);
237 
238  virtual bool advisoriesUseKnownClass() const;
239  virtual void setAdvisoriesUseKnownClass(bool value);
240 
241  virtual bool allowRelaxedDdm() const;
242  virtual void setAllowRelaxedDdm(bool value);
243 
245  //-------------------------------------------------------------------------
246 
248 
249  virtual unsigned int numUpdateRates() const;
250  virtual void addUpdateRate(DtUpdateRateType* updateRate);
251  virtual bool knownUpdateRate( const DtUpdateRateType & updateRate ) const;
253 
254 
256 
257  virtual unsigned int numSyncPoints() const;
258  virtual void addSyncPoint(DtSynchronizationPointsType* syncName);
259  virtual bool knownSyncPoint( const DtSynchronizationPointsType & syncName ) const;
261 
262 
264 
265  virtual unsigned int numTransports() const;
266  virtual void addTransportType(DtTransportationType* transportName);
267  virtual bool knownTransportType( const DtTransportationType & transportName) const;
268  virtual bool transportTypeConsistencyTest(const DtTransportationType & transportName);
269  virtual DtTransportType transportTypeFromTransportation( const DtString & transportTypeName) const;
270  virtual DtMergeFomStatus mergeTransportTypes(DtFedTarget const& module);
272 
274 
275  virtual unsigned int numUserSuppliedTags() const;
276  virtual void addUserSuppliedTag(DtUserSuppliedTagsType* tag);
277  virtual bool knownUserSuppliedTag(const DtUserSuppliedTagsType& tag) const;
279 
280 
282 
283  virtual unsigned int numNotes() const;
284  virtual void addNote(DtNotesType* noteName);
285  virtual bool knownNote(const DtNotesType & noteName) const;
287 
288 
290 
291  virtual unsigned int numSwitches() const;
292  virtual void addSwitch(const DtString& switchName, bool switchVal);
293  virtual bool knownSwitch(const DtString& switchName) const;
295  virtual bool isStandardSwitch(const DtString& switchName) const;
296  virtual bool switchValue(const DtString& switchName) const;
299  virtual DtMergeFomStatus mergeSwitches(DtFedTarget const& module, bool allowCreateMerges);
301 
303 
304  virtual unsigned int numTimeTypes() const;
305  virtual void addTime(DtTimeType* timeName);
306  virtual bool knownTime(const DtTimeType & timeName) const;
307  virtual bool timeTypesSame(DtFedTarget const& module ) const;
308  virtual DtMergeFomStatus mergeTimeTypes(DtFedTarget const& module);
310 
312 
313  virtual void addBasicDataRepresentation(DtBasicDataRepresentationType * theBasicDataRepresentation);
314  virtual bool knownBasicDataRepresentation(const DtBasicDataRepresentationType& theBasicDataRepresentation) const;
316 
317 
319 
320  virtual void addSimpleDataType(DtSimpleDatatypeType * theSimpleDataType);
321  virtual bool knownSimpleDatatype(const DtSimpleDatatypeType & theSimpleDatatype) const;
323 
324 
326 
327  virtual void addEnumeratedDataType(DtEnumeratedDatatypeType * theEnumeratedDataType);
328  virtual bool knownEnumeratedDatatype(const DtEnumeratedDatatypeType& theEnumeratedDatatype) const;
330 
331 
333 
334  virtual void addArrayDataType(DtArrayDatatypeType * theArrayDataType);
335  virtual bool knownArrayDatatype(const DtArrayDatatypeType& theArrayDatatype) const;
337 
338 
340 
341  virtual void addFixedRecordDataType(DtFixedRecordDatatypeType * theFixedRecordDataType);
342  virtual bool knownFixedRecordDatatype(const DtFixedRecordDatatypeType theFixedRecordDatatype) const;
344 
345 
347 
348  virtual void addVariantRecordDataType(DtVariantRecordDatatypeType * theVariantRecordDataType);
349  virtual bool knownVariantRecordDatatype(const DtVariantRecordDatatypeType& theVariantRecordDatatype) const;
351 
352 
354 
355  virtual void addModelIdentification(const char * nameTag);
356  virtual bool knownModelIdentification(DtString const & nameTag) const;
357  virtual bool modelIdentificationSame(DtFedTarget const& module) const;
359 
361 
362  virtual void setFomDependencies(const DtNameVector& fomDependencies);
363  virtual const DtNameVector& fomDependencies();
364  virtual const DtNameVector& fomDependencies() const;
366 
368  virtual void setMergeTableMask(DtU64 mergeTableMask);
369 
371  virtual bool fomTableMergeEnabled(DtMergeFomTableMask fomTableMask) const;
372 
376  virtual DtMergeFomStatus mergeTarget( DtFedTarget const& module, bool allowCreateMerges);
377 
379  virtual DtMergeFomStatus mergeSpaces( DtFedTarget const& module );
380 
382  virtual DtMergeFomStatus mergeObjectClasses(const DtFedTarget& module);
383 
385  virtual DtMergeFomStatus mergeInteractionClasses(const DtFedTarget& module);
386 
388  virtual DtMergeFomStatus postMergeCheckTarget(DtString & errorString);
389 
391 
392  virtual void addUnresolvedAttributeTransportation(const DtString& transportationName, const DtString& className, const DtString& attrName);
393  virtual void removeResolvedAttributeTransportation(const DtString& transportationName, DtNamePair classAttrPair);
395 
397 
398  virtual void addUnresolvedInteractionTransportation(const DtString& transportationName, const DtString& interactionName);
399  virtual void removeResolvedInteractionTransportation(const DtString& transportationName, const DtString& interactionName);
401 
403  virtual const DtString& modelIdentification() const;
404 
406  virtual const DtString& lastError() const;
407 
409  virtual bool isStrictChecking() const;
410  virtual void setStrictChecking(bool doStrictChecking);
411 
412  public:
413 
415 
416 
418  static void setDefaultAutoProvide(bool onOff);
419  static bool defaultAutoProvide();
420 
422  static void setDefaultConveyRegionDesignatorSets(bool onOff);
423  static bool defaultConveyRegionDesignatorSets();
424 
426  static void setDefaultConveyProducingFederate(bool onOff);
427  static bool defaultConveyProducingFederate();
428 
430  static void setDefaultObjectClassRelevanceAdvisory(bool onOff);
431  static bool defaultObjectClassRelevanceAdvisory();
432 
434  static void setDefaultAttributeRelevanceAdvisory(bool onOff);
435  static bool defaultAttributeRelevanceAdvisory();
436 
438  static void setDefaultAttributeScopeAdvisory(bool onOff);
439  static bool defaultAttributeScopeAdvisory();
440 
442  static void setDefaultInteractionRelevanceAdvisory(bool onOff);
443  static bool defaultInteractionRelevanceAdvisory();
444 
446  static void setDefaultServiceReporting(bool onOff);
447  static bool defaultServiceReporting();
448 
450  static void setDefaultExceptionReporting(bool onOff);
451  static bool defaultExceptionReporting();
452 
454  static void setDefaultAutomaticResignAction(DtResignAction val);
455  static DtResignAction defaultAutomaticResignAction();
456 
458  static void setDefaultDelaySubscriptionEvaluation(bool value);
459  static bool defaultDelaySubscriptionEvaluation();
460 
462  static void setDefaultNonRegulatedGrant(bool value);
463  static bool defaultNonRegulatedGrant();
464 
466  static void setDefaultSendServiceReportsToFile(bool value);
467  static bool defaultSendServiceReportsToFile();
468 
470  static void setDefaultAdvisoriesUseKnownClass(bool value);
471  static bool defaultAdvisoriesUseKnownClass();
472 
474  static void setDefaultAllowRelaxedDdm(bool value);
475  static bool defaultAllowRelaxedDdm();
476 
478 
480  static char const* enumAsString(DtResignAction action);
481 
483  static char const* enumAsString(DtMergeFomTableMask mergeTable);
484 
485  protected:
486 
488  typedef void (*DtSwitchSetterFunc)(DtFedTarget* target, bool enableSwitch);
489 
491  typedef bool (*DtSwitchGetterFunc)(DtFedTarget const* target);
492 
494  typedef std::map<DtString, DtSwitchSetterFunc> DtSwitchSetterMap;
495 
497  typedef std::map<DtString, DtSwitchGetterFunc> DtSwitchGetterMap;
498 
501  void initSwitchSetters();
502 
504 
505  virtual void addUnresolvedObjectDimension(const DtString& dimensionName, const DtString& objectClassName);
506  virtual void removeResolvedObjectDimension(const DtString& dimensionName, const DtString& objectClassName);
508 
510 
511  virtual void addUnresolvedAttributeDimension(const DtString& dimensionName, const DtString& className,
512  const DtString& attrName);
513  virtual void removeResolvedAttribute(const DtString& dimensionName, DtNamePair classAttrPair);
515 
517 
518  virtual void addUnresolvedInteractionDimension(const DtString& dimensionName, const DtString& interactionName);
519  virtual void removeResolvedInteractionDimension(const DtString& dimensionName, const DtString& interactionName);
521 
523 
524  virtual void mergeUnresolved(DtFedTarget const & module);
525  virtual bool resolveObjectModelIdentification(DtString & errorString);
526  virtual bool resolveObjectClasses(DtString & errorString, bool& fomReadError);
527  virtual bool resolveInteractionClasses(DtString & errorString, bool& fomReadError);
528  virtual bool resolveAttributes(DtString & errorString, bool& fomReadError);
529  virtual bool resolveParameters(DtString & errorString, bool& fomReadError);
530  virtual bool resolveDimensions(DtString & errorString, bool& fomReadError);
531  // Not necessary
532  virtual bool resolveTimeRepresentations(DtString & errorString);
533  // Not Necessary
534  virtual bool resolveUserSuppliedTags(DtString & errorString);
535  // Not Necessary
536  virtual bool resolveSynchronizationPoints(DtString & errorString);
537  virtual bool resolveTranportationTypes(DtString & errorString);
538  virtual bool resolveUpdateRates(DtString & errorString);
539  virtual bool resolveSwitches(DtString & errorString);
540  virtual void checkSpecificSwitch(const DtString & switchName, bool &mySwitchMissing, DtString &mySwitchesError);
541  // Not necessary
542  virtual bool resolveDatatypes(DtString & errorString);
543  // Not Necessary
544  virtual bool resolveNotes(DtString & errorString);
545  // Not Necessary
546  virtual bool resolveServiceUsage(DtString & errorString);
547  virtual void unionUnresolvedClassDimensions(DtNameToNameSetMap& thisUnresolvedClassDimensions,
548  DtNameToNameSetMap const& otherUnresolvedObjectDimensions);
549  virtual void unionUnresolvedAttributeDimensions(const DtNameToNamePairSetMap& unresolvedAttributeDimensions);
550  virtual void unionUnresolvedAttributeTransportation(const DtNameToNamePairSetMap& unresolvedAttributetransportations);
551  virtual void unionUnresolvedInteractionTransportation(const DtNameToNameSetMap& unresolvedInteractiontransportations);
553 
554  virtual bool checkStringsIgnoringWhiteSpaceAndNewline(const DtString & left, const DtString & right);
555 
556 
558 
559 
560  static void setAutoProvide(DtFedTarget*, bool onOff);
561  static bool autoProvide(DtFedTarget const*);
562  static void setConveyRegionDesignatorSets(DtFedTarget*, bool onOff);
563  static bool conveyRegionDesignatorSets(DtFedTarget const*);
564  static void setConveyProducingFederate(DtFedTarget*, bool onOff);
565  static bool conveyProducingFederate(DtFedTarget const*);
566  static void setObjectClassRelevanceAdvisory(DtFedTarget*, bool onOff);
567  static bool objectClassRelevanceAdvisory(DtFedTarget const*);
568  static void setAttributeRelevanceAdvisory(DtFedTarget*, bool onOff);
569  static bool attributeRelevanceAdvisory(DtFedTarget const*);
570  static void setAttributeScopeAdvisory(DtFedTarget*, bool onOff);
571  static bool attributeScopeAdvisory(DtFedTarget const*);
572  static void setInteractionRelevanceAdvisory(DtFedTarget*, bool onOff);
573  static bool interactionRelevanceAdvisory(DtFedTarget const*);
574  static void setServiceReporting(DtFedTarget*, bool onOff);
575  static bool serviceReporting(DtFedTarget const*);
576  static void setExceptionReporting(DtFedTarget*, bool onOff);
577  static bool exceptionReporting(DtFedTarget const*);
578  static void setDelaySubscriptionEvaluation(DtFedTarget*, bool onOff);
579  static bool delaySubscriptionEvaluation(DtFedTarget const*);
580  static void setNonRegulatedGrant(DtFedTarget*, bool onOff);
581  static bool nonRegulatedGrant(DtFedTarget const*);
582  static void setSendServiceReportsToFile(DtFedTarget*, bool onOff);
583  static bool sendServiceReportsToFile(DtFedTarget const*);
584  static void setAdvisoriesUseKnownClass(DtFedTarget*, bool onOff);
585  static bool advisoriesUseKnownClass(DtFedTarget const*);
586  static void setAllowRelaxedDdm(DtFedTarget*, bool onOff);
587  static bool allowRelaxedDdm(DtFedTarget const*);
588 
590 
591  protected:
592 
595 
596 #define DEFINE_COMPONENT_SET_TYPEDEF(componentType) \
597  typedef std::set<std::shared_ptr<componentType>, FomTypeCompare<componentType>> componentType##Set
609  typedef std::set< std::shared_ptr<DtTimeType>> DtTimeTypeSet;
611 
613 
614  // FOM components
619  DtUserSuppliedTagsTypeSet myUserSuppliedTags;
620  DtSynchronizationPointsTypeSet mySyncPoints;
621  DtTransportationTypeSet myTransportTypes;
623 // std::set<DtNotesType> myNotes;
624  DtNotesTypeSet myNotes;
625 
627 
628  DtBasicDataRepresentationTypeSet myBasicDataRepTypes;
629  DtSimpleDatatypeTypeSet mySimpleDatatypeTypes;
630  DtEnumeratedDatatypeTypeSet myEnumeratedDatatypeTypes;
631  DtArrayDatatypeTypeSet myArrayDatatypeTypes;
632  DtFixedRecordDatatypeTypeSet myFixedRecordDatatypeTypes;
633  DtVariantRecordDatatypeTypeSet myVariantRecordDatatypeTypes;
635 
636  // Mask that determines which tables are merged
638 
640 
658 
659  // Bookkeeping/configuration
664 
667 
673 
677 
678  const DtString myAdvisoriesUseKnownClassTag = "advisoriesUseKnownClass";
679  const DtString myAllowRelaxedDdmTag = "allowRelaxedDDM";
680  const DtString myAttributeRelevanceAdvisoryTag = "attributeRelevanceAdvisory";
681  const DtString myAttributeScopeAdvisoryTag = "attributeScopeAdvisory";
682  const DtString myAutomaticResignActionTag = "automaticResignAction";
683  const DtString myAutoProvideTag = "autoProvide";
684  const DtString myConveyProducingFederateTag = "conveyProducingFederate";
685  const DtString myConveyRegionDesignatorSetsTag = "conveyRegionDesignatorSets";
686  const DtString myDelaySubscriptionEvaluationTag = "delaySubscriptionEvaluation";
687  const DtString myExceptionReportingTag = "exceptionReporting";
688  const DtString myInteractionRelevanceAdvisoryTag = "interactionRelevanceAdvisory";
689  const DtString myNonRegulatedGrantTag = "nonRegulatedGrant";
690  const DtString myObjectClassRelevanceAdvisoryTag = "objectClassRelevanceAdvisory";
691  const DtString myServiceReportingTag = "serviceReporting";
692  const DtString mySendServiceReportsToFileTag = "sendServiceReportsToFile";
693 
694  protected:
695 
711 
712  };
713 
714 #ifdef DtUSE_UTILITIES_NAMESPACE
715 }
716 #endif
717 
Definition: vlFedTarget.h:62
Definition: vlFedTargetTypes.h:604
std::pair< DtString, DtNamePair > DtNameWithNamePair
Definition: vlFedTarget.h:36
DtU64 myFomTableMergeMask
Definition: vlFedTarget.h:637
Definition: vlFedTarget.h:86
DtEnumeratedDatatypeTypeSet myEnumeratedDatatypeTypes
Definition: vlFedTarget.h:630
static bool theDefaultConveyProducingFederate
Definition: vlFedTarget.h:702
Definition: vlFedTarget.h:113
std::map< DtString, DtNamePairSet > DtNameToNamePairSetMap
Definition: vlFedTarget.h:34
Definition: vlFedTarget.h:111
std::set< DtString > DtNameSet
Definition: vlFedTarget.h:31
DtNameToNameSetMap myUnresolvedObjectDimensions
Indicates a FOM module merge is taking place.
Definition: vlFedTarget.h:668
DtFixedRecordDatatypeTypeSet myFixedRecordDatatypeTypes
Definition: vlFedTarget.h:632
Definition: vlFedTarget.h:67
static bool theDefaultServiceReporting
Definition: vlFedTarget.h:709
Definition: vlFedTarget.h:57
static bool theDefaultAdvisoriesUseKnownClass
Definition: vlFedTarget.h:696
static bool theDefaultAllowRelaxedDdm
Definition: vlFedTarget.h:697
enum DtFomUpdateType_enum DtFomUpdateType
Update type for object.
Definition: vlFedTarget.h:59
DtString myLastError
Indicates a FOM module merge is taking place.
Definition: vlFedTarget.h:674
static bool theDefaultAttributeRelevanceAdvisory
Definition: vlFedTarget.h:698
bool myDelaySubscriptionEvaluation
Switches.
Definition: vlFedTarget.h:650
Contains the DtString class declaration.
DtSwitchGetterMap mySwitchGetters
Indicates a FOM module merge is taking place.
Definition: vlFedTarget.h:663
DtNameVector myFomDependencies
Definition: vlFedTarget.h:617
DtNameToNameSetMap myUnresolvedInteractionDimensions
Indicates a FOM module merge is taking place.
Definition: vlFedTarget.h:670
static bool theDefaultDelaySubscriptionEvaluation
Definition: vlFedTarget.h:704
DtResignAction myAutomaticResignAction
Switches.
Definition: vlFedTarget.h:645
Definition: vlFedTargetTypes.h:190
bool myConveyRegionDesignatorSets
Switches.
Definition: vlFedTarget.h:648
std::set< DtNamePair > DtNamePairSet
Definition: vlFedTarget.h:33
unsigned long long DtU64
-------—— Network Layout for a long long (64 bytes unsigned)
Definition: vlMachineTypes.h:185
Definition: vlFedTarget.h:102
Definition: vlFedTarget.h:112
The FOM type components are stored in sets of shared pointers This comparator orders them by the valu...
Definition: vlFedTargetTypes.h:702
Includes utility functions for weak and shared pointers.
Definition: vlFedTargetTypes.h:422
Definition: vlFedTarget.h:63
Definition: vlFedTarget.h:56
std::map< DtString, DtNameSet > DtNameToNameSetMap
Definition: vlFedTarget.h:35
Definition: vlFedTarget.h:44
Definition: vlFedTarget.h:46
DtVariantRecordDatatypeTypeSet myVariantRecordDatatypeTypes
Definition: vlFedTarget.h:633
Definition: vlFedTargetTypes.h:51
DtFomType myFomType
Definition: vlFedTarget.h:612
DtArrayDatatypeTypeSet myArrayDatatypeTypes
Definition: vlFedTarget.h:631
bool myConveyProducingFederate
Switches.
Definition: vlFedTarget.h:649
Definition: vlFedTarget.h:66
Definition: vlFedTarget.h:88
DtSynchronizationPointsTypeSet mySyncPoints
Definition: vlFedTarget.h:620
DtSimpleDatatypeTypeSet mySimpleDatatypeTypes
Definition: vlFedTarget.h:629
DtUpdateRateSetT myUpdateRates
Definition: vlFedTarget.h:622
enum DtSharingType_enum DtSharingType
Definition: vlFedTarget.h:110
DtTransportationTypeSet myTransportTypes
Definition: vlFedTarget.h:621
Definition: vlFedTarget.h:100
DtUserSuppliedTagsTypeSet myUserSuppliedTags
Definition: vlFedTarget.h:619
bool mySendServiceReportsToFile
Switches.
Definition: vlFedTarget.h:655
static bool theDefaultInteractionRelevanceAdvisory
Definition: vlFedTarget.h:706
Definition: vlFedTarget.h:69
bool myExceptionReporting
Switches.
Definition: vlFedTarget.h:651
bool myAttributeScopeAdvisory
Switches.
Definition: vlFedTarget.h:643
std::set< std::shared_ptr< DtTimeType > > DtTimeTypeSet
no ordering needed for sets consisting of these types:
Definition: vlFedTarget.h:609
bool myAttributeRelevanceAdvisory
Switches.
Definition: vlFedTarget.h:644
bool myAutoProvide
Switches.
Definition: vlFedTarget.h:647
std::map< DtString, DtSwitchSetterFunc > DtSwitchSetterMap
List of switch setters by switch name.
Definition: vlFedTarget.h:494
DtNotesTypeSet myNotes
Definition: vlFedTarget.h:624
DtTimeTypeSet myTimeTypes
Definition: vlFedTarget.h:618
class DtFedTarget:
Definition: vlFedTarget.h:124
Definition: vlFedTarget.h:101
FOM component types With a few exceptions, these types are stored in sets ordered by their key subcom...
Definition: vlFedTargetTypes.h:21
bool myNonRegulatedGrant
Switches.
Definition: vlFedTarget.h:654
DtString myModelIdentification
Definition: vlFedTarget.h:616
static bool theDefaultNonRegulatedGrant
Definition: vlFedTarget.h:708
bool myMergingFomModule
Indicates a FOM module merge is taking place.
Definition: vlFedTarget.h:666
Definition: vlFedTarget.h:45
bool myAutomaticResignActionWasSet
Switches.
Definition: vlFedTarget.h:646
DtReliableType
Definition: vlFedTarget.h:98
void(* fptr)(void *)
Definition: vlFedTarget.h:117
DtMergeFomTableMask
Definition: vlFedTarget.h:51
Definition: vlFedTargetTypes.h:238
bool myAdvisoriesUseKnownClass
Switches.
Definition: vlFedTarget.h:641
enum DtMergeFomStatus_enum DtMergeFomStatus
DtSwitchesMap mySwitches
Definition: vlFedTarget.h:626
Definition: vlFedTargetTypes.h:377
DtTransportType
Definition: vlFedTarget.h:84
Definition: vlFedTarget.h:109
Definition: vlFedTarget.h:65
Definition: vlFedTarget.h:95
bool myServiceReporting
Switches.
Definition: vlFedTarget.h:656
Definition: vlFedTarget.h:64
Definition: vlFedTarget.h:87
DtSwitchSetterMap mySwitchSetters
Indicates a FOM module merge is taking place.
Definition: vlFedTarget.h:662
Definition: vlFedTarget.h:55
Definition: vlFedTarget.h:54
static DtResignAction theDefaultAutomaticResignAction
Definition: vlFedTarget.h:700
enum DtOwnershipType_enum DtOwnershipType
DtOrderType
Definition: vlFedTarget.h:91
std::vector< DtString > DtNameVector
Definition: vlFedTarget.h:40
static const xmlChar * attrName
Definition: xmlFedTags.h:116
DtNameToNamePairSetMap myUnresolvedAttributeTransportations
Indicates a FOM module merge is taking place.
Definition: vlFedTarget.h:671
static bool theDefaultAutoProvide
Definition: vlFedTarget.h:701
Definition: vlFedTargetTypes.h:658
DtFomType
Definition: vlFedTarget.h:42
Definition: vlFedTarget.h:47
bool myInteractionRelevanceAdvisory
Switches.
Definition: vlFedTarget.h:652
Definition: vlFedTarget.h:68
bool myObjectClassRelevanceAdvisory
Switches.
Definition: vlFedTarget.h:653
DtNameToNameSetMap myUnresolvedInteractionTransportations
Indicates a FOM module merge is taking place.
Definition: vlFedTarget.h:672
std::pair< DtString, DtString > DtNamePair
Definition: vlFedTarget.h:32
bool myAllowRelaxedDdm
Switches.
Definition: vlFedTarget.h:642
provides basic Operating Independent Methods useful to a federate
std::map< DtString, bool > DtSwitchesMap
Definition: vlFedTarget.h:38
Definition: vlFedTargetTypes.h:285
Definition: vlFedTarget.h:53
Definition: vlFedTarget.h:71
Instances of DtString are used to represent strings.
Definition: vlString.h:36
static bool theDefaultObjectClassRelevanceAdvisory
Definition: vlFedTarget.h:707
std::map< DtString, DtSwitchGetterFunc > DtSwitchGetterMap
List of switch getters by switch name.
Definition: vlFedTarget.h:497
static bool theDefaultExceptionReporting
Definition: vlFedTarget.h:705
Definition: vlFedTargetTypes.h:102
Definition: vlFedTargetTypes.h:146
static bool theDefaultAttributeScopeAdvisory
Definition: vlFedTarget.h:699
DtNameToNamePairSetMap myUnresolvedAttributeDimensions
Indicates a FOM module merge is taking place.
Definition: vlFedTarget.h:669
#define DEFINE_COMPONENT_SET_TYPEDEF(componentType)
Component type sets hold shared pointers; comparators provided to order by value of instances (not po...
Definition: vlFedTarget.h:596
Definition: vlFedTarget.h:61
Definition: vlFedTargetTypes.h:514
bool myStrictChecking
Indicates a FOM module merge is taking place.
Definition: vlFedTarget.h:661
Definition: vlFedTarget.h:93
DtResignAction
Order of enumerations matches HLA 1516+ HLA 1.3 has to convert.
Definition: vlFedTarget.h:107
Definition: vlFedTarget.h:60
DtBasicDataRepresentationTypeSet myBasicDataRepTypes
Definition: vlFedTarget.h:628
std::set< std::shared_ptr< DtUpdateRateType >, FomTypeCompare< DtUpdateRateType > > DtUpdateRateSetT
Definition: vlFedTarget.h:29
bool myErrorFlag
Indicates a FOM module merge is taking place.
Definition: vlFedTarget.h:675
Definition: vlFedTarget.h:94
This file contains typedefs for machine dependant types.
Definition: vlFedTarget.h:72
Definition: vlFedTarget.h:48
static bool theDefaultSendServiceReportsToFile
Definition: vlFedTarget.h:710
#define DT_DLL_VLUTIL
Definition: vlMachineTypes.h:109
static bool theDefaultConveyRegionDesignatorSets
Definition: vlFedTarget.h:703
Definition: vlFedTarget.h:114
std::set< DtNameWithNamePair > DtNameWithNamePair_Set
Definition: vlFedTarget.h:37
Definition: vlFedTarget.h:70
Definition: vlFedTarget.h:58

Document ID: Generated on Thu Oct 16 00:12:25 EDT 2025 from SVN revision 280738
Copyright © 1992-2025 MAK Technologies. All Rights Reserved (www.mak.com)