24 #ifdef DtUSE_UTILITIES_NAMESPACE
25 namespace DtUSE_UTILITIES_NAMESPACE
75 #define DEFAULT_MERGE_MASK DtMergeFomTableObjectClass | DtMergeFomTableInteractionClass \
76 | DtMergeFomTableDimensions | DtMergeFomTableTime | DtMergeFomTableUserDefinedTags | DtMergeFomTableSyncPoints \
77 | DtMergeFomTableTransportTypes | DtMergeFomTableUpdateRates | DtMergeFomTableSwitches | DtMergeFomTableBasicDataRepType \
78 | DtMergeFomTableSimpleDataType | DtMergeFomTableEnumeratedDataType | DtMergeFomTableArrayDataType \
79 | DtMergeFomTableFixedRecordDataType | DtMergeFomTableVariantRecordDataType
147 virtual void addSpace(
const char* name);
151 virtual void addDimension(
const char* SpaceName,
const char* dimName);
154 virtual void addDimension(
const char* dimName,
unsigned long upperBound,
155 unsigned long defaultLowerBound,
unsigned long defaultUpperBound,
156 bool excluded,
const DtString& normalization);
160 virtual bool addInterClass(
const char* name,
const char* baseName,
165 virtual void addParameter(
const char* className,
const char* paramName) = 0;
169 virtual bool addInteractionDimension(
const char* interactionName,
const char* dimension) = 0;
173 virtual bool addObjClass(
const char* name,
const char* baseName) = 0;
177 virtual bool addObjectDimension(
const char* objectClassName,
const char* dimension) = 0;
181 virtual void addAttribute(
const char* className,
const char*
attrName,
188 virtual void addAttribute(
const char* className,
const char* attributeName,
193 virtual bool addAttributeDimension(
const char* className,
const char* attrName,
const char* dimName) = 0;
199 virtual bool autoProvide()
const;
200 virtual void setAutoProvide(
bool value);
202 virtual bool conveyRegionDesignatorSets()
const;
203 virtual void setConveyRegionDesignatorSets(
bool value);
205 virtual bool conveyProducingFederate()
const;
206 virtual void setConveyProducingFederate(
bool value);
208 virtual bool attributeScopeAdvisory()
const;
209 virtual void setAttributeScopeAdvisory(
bool value);
211 virtual bool attributeRelevanceAdvisory()
const;
212 virtual void setAttributeRelevanceAdvisory(
bool value);
214 virtual bool objectClassRelevanceAdvisory()
const;
215 virtual void setObjectClassRelevanceAdvisory(
bool value);
217 virtual bool interactionRelevanceAdvisory()
const;
218 virtual void setInteractionRelevanceAdvisory(
bool value);
220 virtual bool serviceReporting()
const;
221 virtual void setServiceReporting(
bool value);
223 virtual bool exceptionReporting()
const;
224 virtual void setExceptionReporting(
bool value);
226 virtual bool delaySubscriptionEvaluation()
const;
227 virtual void setDelaySubscriptionEvaluation(
bool value);
232 virtual bool nonRegulatedGrant()
const;
233 virtual void setNonRegulatedGrant(
bool value);
235 virtual bool sendServiceReportsToFile()
const;
236 virtual void setSendServiceReportsToFile(
bool value);
238 virtual bool advisoriesUseKnownClass()
const;
239 virtual void setAdvisoriesUseKnownClass(
bool value);
241 virtual bool allowRelaxedDdm()
const;
242 virtual void setAllowRelaxedDdm(
bool value);
249 virtual unsigned int numUpdateRates()
const;
257 virtual unsigned int numSyncPoints()
const;
265 virtual unsigned int numTransports()
const;
275 virtual unsigned int numUserSuppliedTags()
const;
283 virtual unsigned int numNotes()
const;
285 virtual bool knownNote(
const DtNotesType & noteName)
const;
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;
304 virtual unsigned int numTimeTypes()
const;
306 virtual bool knownTime(
const DtTimeType & timeName)
const;
307 virtual bool timeTypesSame(
DtFedTarget const& module )
const;
355 virtual void addModelIdentification(
const char * nameTag);
356 virtual bool knownModelIdentification(
DtString const & nameTag)
const;
357 virtual bool modelIdentificationSame(
DtFedTarget const& module)
const;
362 virtual void setFomDependencies(
const DtNameVector& fomDependencies);
368 virtual void setMergeTableMask(
DtU64 mergeTableMask);
392 virtual void addUnresolvedAttributeTransportation(
const DtString& transportationName,
const DtString& className,
const DtString& attrName);
393 virtual void removeResolvedAttributeTransportation(
const DtString& transportationName,
DtNamePair classAttrPair);
398 virtual void addUnresolvedInteractionTransportation(
const DtString& transportationName,
const DtString& interactionName);
399 virtual void removeResolvedInteractionTransportation(
const DtString& transportationName,
const DtString& interactionName);
403 virtual const DtString& modelIdentification()
const;
406 virtual const DtString& lastError()
const;
409 virtual bool isStrictChecking()
const;
410 virtual void setStrictChecking(
bool doStrictChecking);
418 static void setDefaultAutoProvide(
bool onOff);
419 static bool defaultAutoProvide();
422 static void setDefaultConveyRegionDesignatorSets(
bool onOff);
423 static bool defaultConveyRegionDesignatorSets();
426 static void setDefaultConveyProducingFederate(
bool onOff);
427 static bool defaultConveyProducingFederate();
430 static void setDefaultObjectClassRelevanceAdvisory(
bool onOff);
431 static bool defaultObjectClassRelevanceAdvisory();
434 static void setDefaultAttributeRelevanceAdvisory(
bool onOff);
435 static bool defaultAttributeRelevanceAdvisory();
438 static void setDefaultAttributeScopeAdvisory(
bool onOff);
439 static bool defaultAttributeScopeAdvisory();
442 static void setDefaultInteractionRelevanceAdvisory(
bool onOff);
443 static bool defaultInteractionRelevanceAdvisory();
446 static void setDefaultServiceReporting(
bool onOff);
447 static bool defaultServiceReporting();
450 static void setDefaultExceptionReporting(
bool onOff);
451 static bool defaultExceptionReporting();
458 static void setDefaultDelaySubscriptionEvaluation(
bool value);
459 static bool defaultDelaySubscriptionEvaluation();
462 static void setDefaultNonRegulatedGrant(
bool value);
463 static bool defaultNonRegulatedGrant();
466 static void setDefaultSendServiceReportsToFile(
bool value);
467 static bool defaultSendServiceReportsToFile();
470 static void setDefaultAdvisoriesUseKnownClass(
bool value);
471 static bool defaultAdvisoriesUseKnownClass();
474 static void setDefaultAllowRelaxedDdm(
bool value);
475 static bool defaultAllowRelaxedDdm();
488 typedef void (*DtSwitchSetterFunc)(
DtFedTarget* target,
bool enableSwitch);
501 void initSwitchSetters();
505 virtual void addUnresolvedObjectDimension(
const DtString& dimensionName,
const DtString& objectClassName);
506 virtual void removeResolvedObjectDimension(
const DtString& dimensionName,
const DtString& objectClassName);
511 virtual void addUnresolvedAttributeDimension(
const DtString& dimensionName,
const DtString& className,
513 virtual void removeResolvedAttribute(
const DtString& dimensionName,
DtNamePair classAttrPair);
518 virtual void addUnresolvedInteractionDimension(
const DtString& dimensionName,
const DtString& interactionName);
519 virtual void removeResolvedInteractionDimension(
const DtString& dimensionName,
const DtString& interactionName);
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);
532 virtual bool resolveTimeRepresentations(
DtString & errorString);
534 virtual bool resolveUserSuppliedTags(
DtString & errorString);
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);
542 virtual bool resolveDatatypes(
DtString & errorString);
544 virtual bool resolveNotes(
DtString & errorString);
546 virtual bool resolveServiceUsage(
DtString & errorString);
547 virtual void unionUnresolvedClassDimensions(
DtNameToNameSetMap& thisUnresolvedClassDimensions,
549 virtual void unionUnresolvedAttributeDimensions(
const DtNameToNamePairSetMap& unresolvedAttributeDimensions);
550 virtual void unionUnresolvedAttributeTransportation(
const DtNameToNamePairSetMap& unresolvedAttributetransportations);
551 virtual void unionUnresolvedInteractionTransportation(
const DtNameToNameSetMap& unresolvedInteractiontransportations);
554 virtual bool checkStringsIgnoringWhiteSpaceAndNewline(
const DtString & left,
const DtString & right);
560 static void setAutoProvide(
DtFedTarget*,
bool onOff);
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);
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);
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);
596 #define DEFINE_COMPONENT_SET_TYPEDEF(componentType) \
597 typedef std::set<std::shared_ptr<componentType>, FomTypeCompare<componentType>> componentType##Set
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";
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";
714 #ifdef DtUSE_UTILITIES_NAMESPACE
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
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
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