37 #include <vlutil/vlString.h>
38 #include <vlutil/vlUtil.h>
39 #include <vlutil/vlFedTarget.h>
41 #include <mtl/fedReader13.h>
42 #include <mtl/fedReader1516.h>
43 #include <mtl/fedReader1516e.h>
44 #include <mtl/fedReader1516_4.h>
56 class DtConstrainedSyncMsg;
58 class DtEnableRegulationMsg;
59 class DtEnableConstrainedMsg;
62 class DtNextEventRequestMsg;
73 class DtSaveRequestTsoMsg;
79 class DtTimeAdvanceRequestMsg;
92 std::string
const & timeImplName, MAKRti::DtFomType fedType,
const DtString& momModuleName,
123 DtFedExec(
DtRtiExec* rtiexec,
const std::vector<unsigned int> & crcs, DtString
const & fedExName,
124 std::string
const & timeImplName, MAKRti::DtFomType fedType,
const DtString& momModuleName,
125 const std::vector<DtString >& modules,
int fedExHandle,
DtRIDParameters* params,
unsigned int momModuleCrc);
139 virtual const DtString& fedExName()
const;
142 virtual int fedExHandle()
const;
146 virtual const DtString& fedFileName()
const;
149 virtual const std::vector<DtString>& fomModules()
const;
152 virtual bool fullyCreated()
const;
155 virtual void setFullyCreated(
bool val);
158 virtual unsigned long creatorID()
const;
161 virtual void createDistributor(
const unsigned long initiatingFedID,
162 const DtString& momModuleName,
163 const std::vector<DtString>& fomModules );
166 virtual int numFederates()
const;
178 virtual DtFederateHandle federateHandleOfConnection(
unsigned long connId)
const;
181 virtual void disconnectFederate(
DtFederate* fed );
184 virtual bool removeFederateConnection(
unsigned long id);
190 virtual bool restoreFederateConnection(
DtFederateHandle handle,
unsigned long newConnId,
unsigned long& oldConnId);
202 virtual void resetClockForHeartBeat();
208 virtual void printFederates();
211 virtual void addFederateJoinedCallback(
DtFederateCbFn fn,
void* usr);
214 virtual void removeFederateJoinedCallback(
DtFederateCbFn fn,
void* usr);
217 virtual void addFederateResignedCallback(
DtFederateCbFn fn,
void* usr);
220 virtual void removeFederateResignedCallback(
DtFederateCbFn fn,
void* usr);
224 virtual void addSyncPtRegisteredCallback(
DtSyncPointCbFn fn,
void* usr);
228 virtual void removeSyncPtRegisteredCallback(
DtSyncPointCbFn fn,
void* usr);
240 virtual void addFederationSynchronizedCallback(
DtSyncPointCbFn fn,
void* usr);
244 virtual void removeFederationSynchronizedCallback(
DtSyncPointCbFn fn,
void* usr);
247 virtual void addFederateDisconnectedCallback(
DtFederateCbFn fn,
void* usr );
250 virtual void removeFederateDisconnectedCallback(
DtFederateCbFn fn,
void* usr );
253 virtual void addFederateReconnectSucceededCallback(
DtFederateCbFn fn,
void* usr );
256 virtual void removeFederateReconnectSucceededCallback(
DtFederateCbFn fn,
void* usr );
271 void pushFomModuleToJoinedFederates(
DtFederate* newFederate,
273 unsigned int fileSize,
274 const char* fileBuffer );
279 unsigned int fileSize,
280 const char* fileBuffer );
298 virtual const DtTimeInfoList* regulatingFederates()
const;
302 virtual const DtTimeInfoList* constrainedFederates()
const;
306 virtual void disableNetworkTesting();
309 virtual void enableNetworkTesting();
313 bool continuous,
bool haltContinuous,
bool observing,
314 unsigned int interactionPeriod,
unsigned int numInteractions,
315 unsigned int payloadBytes );
318 virtual bool transferRidParams(
DtFederateHandle handle,
const DtString& ridString);
325 static void processJoinMsg(
const DtJoinMsg& msg,
void* usr);
327 static void processAlive(
const DtAliveMsg& msg,
void* usr);
328 static void processResign(
const DtResignMsg& msg,
void* usr);
330 static void processSyncPoint(
const DtSyncPointMsg& msg,
void* usr);
335 static void processSaveBegun(
const DtSaveBegunMsg& msg,
void* usr);
336 static void processAbortSave(
const DtAbortSaveMsg& msg,
void* usr);
341 static void processOwnership(
const DtOwnershipMsg& msg,
void* usr);
349 static void processSaveRequestTso(
const DtSaveRequestTsoMsg& msg,
void* usr);
350 static void processEnableRegulation(
const DtEnableRegulationMsg& msg,
void* usr);
351 static void processEnableConstrained(
const DtEnableConstrainedMsg& msg,
void* usr);
352 static void processTimeAdvanceRequest(
const DtTimeAdvanceRequestMsg& msg,
void* usr);
353 static void processDisable(
const DtDisableMsg& msg,
void* usr);
354 static void processConstrainedSync(
const DtConstrainedSyncMsg& msg,
void* usr);
355 static void processNextEventRequest(
const DtNextEventRequestMsg& msg,
void* usr);
369 static DtFedExec* create(
DtRtiExec* rtiexec,
const std::vector<unsigned int> & crcs, DtString
const & fedExName,
370 std::string
const & timeImplName, MAKRti::DtFomType fedType, DtString
const& momModuleName,
371 const std::vector<DtString>& fomModules,
int fedExHandle,
DtRIDParameters* params,
unsigned int momModuleCrc);
383 virtual const std::map< unsigned long, std::vector<DtString>*>& joinFomModules()
const;
385 virtual std::vector<DtString>& joinFomModulesForConnection(
unsigned long connID)
const;
388 virtual const std::vector<DtString>& createFomModules()
const;
391 virtual void reconnectFederateSucceeded(
DtFederate* fed);
399 virtual void processJoinMsg(
const DtJoinMsg& msg);
400 virtual bool handleJoinFailureCases(
const DtJoinMsg &msg );
401 virtual void requestFedFileUpload(
const DtJoinMsg& msg );
404 virtual void processAlive(
const DtAliveMsg& msg);
405 virtual void processResign(
const DtResignMsg& msg);
426 virtual void processEnableRegulation(
const DtEnableRegulationMsg& msg);
427 virtual void processEnableConstrained(
const DtEnableConstrainedMsg& msg);
428 virtual void processTimeAdvanceRequest(
const DtTimeAdvanceRequestMsg& msg);
429 virtual void processDisable(
const DtDisableMsg& msg);
430 virtual void processConstrainedSync(
const DtConstrainedSyncMsg& msg);
431 virtual void processSaveRequestTso(
const DtSaveRequestTsoMsg& msg);
433 virtual void processNextEventRequest(
const DtNextEventRequestMsg& msg);
448 virtual void processSyncPtAchievedCallbacks(
DtSyncPt* point,
452 virtual void processFederationSynchronizedCallbacks(
DtSyncPt* point);
457 virtual bool synchronized(
DtSyncPt* point,
468 const char* federateType,
const char* federateName,
DtFederateHandle handle,
469 unsigned long connHandle,
int astntCompId,
const char* fedHostName,
475 const char* federateType,
const char* federateName,
477 DtResignAction resignAction,
const char* fedHostname, MAKRti::DtInetAddr host,
490 virtual DtFedReadStatus readCreateFom(
DtFomClassMgr* target,
const DtString& fomFile,
496 virtual DtFedReadStatus readCreateFoms(
DtFomClassMgr* topLevelTarget, std::vector<DtString>& fomFiles,
500 virtual DtFedReadStatus readJoinFom(
DtFomClassMgr* target,
const DtString& fomFile,
505 virtual DtFedReadStatus readJoinFoms(std::vector<DtString>& fomFiles,
509 virtual bool processCreateReady();
513 virtual bool processJoin(
unsigned long connID,
const DtFedJoinInfo* fedInfo);
517 virtual void processJoinReady();
520 virtual void destroyDistributor();
530 virtual unsigned int numberFederatesAllowed(
unsigned int numPartners)
const;
533 virtual void resetControl();
536 virtual bool tickDistributor();
539 virtual bool processEvents();
542 virtual bool areJoinFomModulesUploadedAndReady(
unsigned long federateId);
545 virtual DtCreateResponseFlag handleCreateResponse(DtFedReadStatus status,
const DtFedReader* fedReader,
546 const DtString filename, DtString& errorResponse)
const;
550 const DtString filename, DtString& errorResponse)
const;
555 DtFedReader * getReader(DtFomType theFomType);
556 DtFedReader * getReader( DtFomType theFomType,
DtFomClassMgr* target);
558 void populateWithUnknownFoms(std::vector<DtString> & mods, std::vector<DtString> & requestedMods);
559 bool isFomAvailable(
const DtString & fomName);
560 bool doesCrcMatchKnownFomModuleCrc(
const DtString & fomName,
unsigned int myTakenFomCrc );
563 virtual bool fedFileReady(
const MAKRti::DtString& fileName)
const;
566 virtual bool fedFilesReady(
const std::vector<MAKRti::DtString>& fileNames )
const;
569 virtual bool addJoinFomModuleForConnection(
unsigned long connId,
570 const std::vector<MAKRti::DtString>& modulesFromJoinRequest );
573 virtual void removeJoinFomModuleForConnection(
unsigned long connID );
579 virtual void handleBadJoin(
unsigned long connID,
const DtFedJoinInfo* joinInfo, std::vector<DtString>& joinModules,
583 virtual void readAndMergeJoiningFomModules(
unsigned long connID,
DtFomClassMgr* target,
589 virtual void tickSaveRestore();
593 virtual void tickJoin();
597 virtual void tickFederates();
602 virtual void sendSyncPointMsg(
606 RTI_API::VariableLengthData
const* theTag = NULL,
610 virtual void sendResignMsg(
613 const DtTimeInfo* timeInfo );
614 virtual void sendEnableDisableNetworkTestingMsg(
615 const char* name,
bool enabled );
616 virtual void sendTransferRidParamsMsg(
618 virtual void sendJoinResponseMsg(
unsigned long destinationIDValue,
619 unsigned short requestID,
unsigned int crcOfFedFile,
DtFederateHandle handle,
620 const char* federateName,
int fedExHandle,
const char* fedExName,
621 const DtString& momModule,
const std::vector<MAKRti::DtString>& modules,
622 unsigned long flags,
bool allowNetworkTesting,
bool enableNetworkTesting,
625 const DtString& errorString = DtString::nullString());
627 virtual void sendSaveInitiateMsg(
const char* labelVal);
628 virtual void sendSaveInitiateConstrainedMsg(
const char* labelVal);
630 unsigned long requestID,
const char* labelVal,
634 char const* objectName,
bool result);
636 std::set< std::wstring >
const & objectNames,
646 virtual void sendRegulationEnabledMsg(
649 virtual void sendConstrainedEnabledMsg(
656 virtual void sendNerLbtsMsg(
658 bool nerPending,
bool lagNerPending,
661 virtual void sendSyncConstrainedMsg();
665 virtual void sendSaveTimeMsg(
char const* label,
670 virtual void retireSyncPoint(
const char* name);
679 virtual void checkTimedSave();
682 virtual void initiateSave(
const char* label);
686 virtual bool save(
const char* label );
690 virtual int initializeRestore(
const char* label );
694 virtual bool restore(
const char* label );
704 virtual DtString& getSaveFileName(
const char* label, MAKRti::DtString& fileName,
705 bool extendName=
true);
709 virtual DtString& getRestoreFileName(
const char* label, MAKRti::DtString& fileName);
719 void removeRegulatingEntry(DtTimeInfo* entry);
722 virtual void checkPendingConstrained(
DtRtiApiTime const & lbts);
725 virtual void checkPendingConstrained(DtTimeInfo* entry,
730 virtual bool becomeConstrained(DtTimeInfo* entry);
734 void adjustRegulatingEntry(DtTimeInfo* entry,
737 bool isTimeAvailable);
762 virtual void destroyTempTimePool();
776 virtual bool minTimeAvailable()
const;
780 virtual bool lagTimeAvailable()
const;
795 virtual bool minNerPending()
const;
798 virtual bool lagNerPending()
const;
813 virtual void setFederateHandleSlotInUse(
DtFederateHandle handle,
bool isInUse);
818 virtual bool authorizeFederateOperation(
const DtJoinMsg& msg, DtString& errorMessage);
823 virtual int getNextFreeFedHandle();
914 typedef std::map< DtFederateHandle, DtFedExReservedNameSet >
921 DtTimeInfoList myRegulatingFederates;
922 DtTimeInfoList myConstrainedFederates;
923 DtTimeInfoList myPendingConstrained;
924 DtTimeInfoList myPendingTar;
925 DtTimeInfoList myPendingRegulation;
926 DtTimeInfoList myNerLbtsList;
927 DtTimeInfoList myNerRequested;
928 DtTimeInfoList myPendingNerResponses;
929 bool myNewNerRequestPending;
930 bool myForceNerCycle;
932 bool myTransmitLaggardLBTS;
933 DtList mySyncConstrained;
934 unsigned long myNerCycle;
937 DtList myTempTimePool;
std::vector< FederateHandleSaveStatusPair > FederateHandleSaveStatusPairVector
Definition: Typedefs.h:57
Definition: distributorThreadEvents.h:221
int myDefaultWait
Definition: fedex.h:902
DtList myReconnectFailedCallbacks
Definition: fedex.h:908
unsigned int myNumberFederatesAllowed
Definition: fedex.h:959
Definition: syncPointQueryMsg.h:31
std::vector< unsigned int > myCreationFedFilesCRCs
Definition: fedex.h:847
DtFedReader13 * myFedReader13
Definition: fedex.h:965
std::set< unsigned long > myConnectionsJoinProcessed
Definition: fedex.h:869
DtFedExec *(* DtFedExecCreator)(DtRtiExec *rtiexec, const std::vector< unsigned int > &crcs, DtString const &fedExName, std::string const &timeImplName, MAKRti::DtFomType fedType, const DtString &momModuleName, const std::vector< DtString > &fedFileName, int fedExHandle, DtRIDParameters *params, unsigned int momModuleCrc)
DtFedExec creator prototype.
Definition: fedex.h:91
MAKRti::DtFomType myFedType
Definition: fedex.h:848
Definition: aliveMsg.h:24
unsigned int myMomModuleCrc
Definition: fedex.h:846
DtSaveFinishedResult
Definition: savFinMsg.h:21
std::set< std::string > DtFedExReservedNameSet
Definition: fedex.h:913
unsigned int myCrcOfFedFile
Definition: fedex.h:835
Definition: joinConfMsg.h:24
DtFederateHandleInfoMap myRestoreFederatesByOld
Definition: fedex.h:882
bool myAwaitingCreateUpload
Definition: fedex.h:896
unsigned long myCreatorConnId
Definition: fedex.h:897
bool myAllowNetworkTesting
Whether network testing is enabled or completely disabled by the RID.
Definition: fedex.h:952
This class manages the RTI's start-up configuration using both MTL variables and functions.
Definition: RIDparams.h:87
Definition: fedTimeFactory.h:73
DtString myMomModule
Definition: fedex.h:845
std::map< DtString, unsigned int > myFomModulesNameToCrcMap
Definition: fedex.h:852
bool myModulesArrived
Definition: fedex.h:955
DtFederateHandleStdSet myInitiatedSaveFederates
Definition: fedex.h:878
unsigned long myInitiatorID
Definition: fedex.h:949
Definition: ownerMsg.h:45
bool myDistributeFedFile
Definition: fedex.h:947
bool myRestore
Definition: fedex.h:876
bool myNetworkTestingEnabled
Whether network testing has been toggled on/off by the assistant.
Definition: fedex.h:954
Definition: fomModuleDistExecMsg.h:26
float myResponseInterval
to obtain response retransmission interval
Definition: fedex.h:873
DtSaveResponseFlag
Definition: savRespMsg.h:22
Definition: syncHashlist.h:21
DtString mySavePath
Definition: fedex.h:884
static const DtString nullStr
Definition: fedex.h:972
Definition: savCompMsg.h:22
DtFederateHandle myDesignatedFederate
Definition: fedex.h:859
bool mySavePending
Definition: fedex.h:885
DtHlaVersionId
Definition: rtiVersion.h:51
Definition: fedHandleSet.h:61
DtString myFedExName
Definition: fedex.h:839
std::vector< bool > myFedHandlesInUse
Definition: fedex.h:837
std::map< DtString, DtFedReadStatus > myFomToReadStatusMap
Definition: fedex.h:891
bool mySaveBegun
Definition: fedex.h:886
float myFederateTimeoutInterval
Definition: fedex.h:860
static const DtFederateHandle theFederationShadowHandle
Definition: fedex.h:973
DtClock myClock
Definition: fedex.h:957
std::map< unsigned long, std::vector< DtString > * > myJoinFomModules
Definition: fedex.h:855
std::map< DtFederateHandle, DtFedExReservedNameSet > DtFedExFederateReservedNameMap
Definition: fedex.h:915
DtList myFedSynchronizedCallbacks
Definition: fedex.h:909
std::set< unsigned long > myAwaitingJoinUpload
Definition: fedex.h:898
Definition: resignMsg.h:36
RTI_API::LogicalTime DtRtiApiTime
Typedefs for RTI API types that frequently require conditional precompile directives.
Definition: rtiApiTypes.h:91
DtFedReader1516_4 * myFedReader1516_2025
Definition: fedex.h:968
std::map< MAKRti::DtString, DtFederateHandle > myFederateHdlsByName
Definition: fedex.h:842
Definition: resignDirectiveMsg.h:24
DtAsyncFileDistributorRunnable * myDistributor
Definition: fedex.h:945
bool myCrcCheckFedFile
Definition: fedex.h:948
std::map< unsigned long, bool > myFedRequests
Definition: fedex.h:894
int myTimeout
Definition: fedex.h:901
DtFederateNameInfoMap myFederatesByName
Definition: fedex.h:841
std::vector< DtString > myCreateFomModules
Definition: fedex.h:854
std::vector< DtString > myFomModules
Definition: fedex.h:849
Sent by Federates to request fed file from RtiExec.
Definition: fomModuleRequestMsg.h:24
errorCodes
error codes for the errorValue flag
Definition: joinRespMsg.h:32
Definition: resReqMsg.h:23
Definition: reserveNameMsg.h:25
Definition: federate.h:39
DtFomClassMgr * myFom
Definition: fedex.h:856
DtList myReconnectSucceededCallbacks
Definition: fedex.h:907
std::pair< DtString, DtFedReadStatus > DtFomToReadStatusPair
Definition: fedex.h:115
std::set< DtString > myFomModulesSet
Definition: fedex.h:853
DtFedReader1516 * myFedReader1516
Definition: fedex.h:966
virtual const MAKRti::DtString fedExName() const
These two functions should be avoided in favor of isForExec().
DtFedReader1516e * myFedReader1516e
Definition: fedex.h:967
bool myUseDestinationMetadata
Definition: fedex.h:838
static DtFedExecCreator theCreator
Definition: fedex.h:963
std::map< const DtString, DtFomClassMgr > myFedexFileToFedTgtMap
Definition: fedex.h:890
void(* DtFederateHandleCbFn)(DtFederateHandle handle, void *usr)
Callback prototype about unknown federates (e.g., reconnect failed)
Definition: fedex.h:99
Definition: resComMsg.h:22
DtFederateHandleInfoMap myRestoreFederatesByNew
Definition: fedex.h:883
Instances of DtConnectionMgr manage the communication objects that the RTI will use to either communi...
Definition: connectMgr.h:67
DtHandle DtFederateHandle
Definition: internalTypes.h:46
Definition: saveAbortMsg.h:22
Definition: syncPointMsg.h:46
Compares a rid file.
Definition: ridFileTester.h:25
std::map< unsigned long, DtFedJoinInfo * > myJoiningFederatesByID
Definition: fedex.h:867
Sent by Federates to request testing of the RID file from RtiExec.
Definition: transferRidParamsMsg.h:30
Definition: distributorThreadEvents.h:205
Definition: restoreAbortMsg.h:22
bool myFullFedFileDistribution
Definition: fedex.h:974
Definition: releaseMultiNameMsg.h:25
DtCreateResponseFlag
Definition: creRespMsg.h:23
DtList mySpRegisterCallbacks
Definition: fedex.h:911
DtEndRestoreResult
Definition: resEndMsg.h:21
DtFederateHandleStdSet myPendingSaveFederates
Definition: fedex.h:877
DtList myDisconnectCallbacks
Definition: fedex.h:906
bool myAllowResignActionOverride
Definition: fedex.h:863
int myFedExHandle
Definition: fedex.h:858
DtRtiApiUniquePtr< DtRtiApiTime > DtRtiApiUniquePtrTime
Definition: rtiApiTypes.h:96
DtResignAction myResignAction
Definition: fedex.h:861
int myNumberResponseAttempts
Response interval from params is divided by this number.
Definition: fedex.h:871
Definition: fomModuleDistributionMsg.h:25
int myFreeFedHandle
Definition: fedex.h:836
Definition: savTimeAdvMsg.h:21
Definition: queryRestoreStatusMsg.h:22
void(* DtFederateCbFn)(DtFederate *federate, void *usr)
Callback prototype about known federates (e.g., joined/resigned/reconnect/disconnect) ...
Definition: fedex.h:96
Definition: reserveMultiNameMsg.h:25
DtSyncHashlist mySyncList
Definition: fedex.h:844
Definition: savBegMsg.h:22
Distributes fomModule files from initiating federate to RtiExec and then from RtiExec to all joining ...
Definition: asynchronousFileDistributor.h:33
DtFederateHandle mySavingFederate
Definition: fedex.h:880
Definition: initiatedSaveMsg.h:21
DtRtiExec * myRtiexec
Definition: fedex.h:834
Definition: savReqMsg.h:23
std::map< DtString, DtFileInformation * > myTakenFiles
Definition: fedex.h:888
DtFedExFederateReservedNameMap myFederateReservedNames
Definition: fedex.h:917
Definition: resBegMsg.h:28
DtFederateHandleStdSet myPendingRestoreFederates
Definition: fedex.h:881
std::map< DtString, DtFederate * > DtFederateNameInfoMap
Federate name -> Federate info map.
Definition: fedex.h:111
bool myFullyCreated
Definition: fedex.h:899
Definition: distributorThreadEvents.h:238
RTI_API::FederateRestoreStatusVector DtRtiApiFederateRestoreStatusVector
Definition: rtiApiTypes.h:108
DtList myResignCallbacks
Definition: fedex.h:905
DtString mySaveLabel
Definition: fedex.h:879
std::pair< const DtString, DtFomClassMgr > DtFileToFedTgtPair
Definition: fedex.h:113
Definition: joinRespMsg.h:33
DtList myJoinCallbacks
Definition: fedex.h:904
RTI_API::LogicalTimeInterval DtRtiApiTimeInterval
Definition: rtiApiTypes.h:92
DtSyncPointStatus
Definition: syncPointMsg.h:36
Defines a ThreadedObject which can run a DtRunnable object in a thread.
DtFederateHandleInfoMap myFederates
Definition: fedex.h:840
DtFedExReservedNameSet myReservedNames
Definition: fedex.h:916
void(* DtSyncPointCbFn)(DtSyncPt *pt, void *usr)
Synchronization point registered/synchronized callback prototype.
Definition: fedex.h:102
DtSyncMsgType
Definition: syncPointMsg.h:25
int myStrictNameReservation
Definition: fedex.h:950
void(* DtSyncPointAchievedCbFn)(DtFederate *who, DtSyncPt *pt, void *usr)
Synchronization point achieved callback prototype.
Definition: fedex.h:105
Definition: querySaveStatusMsg.h:22
The client connection to the RTI Assistant for the rtiexec.
Definition: rtiAssistantExecClient.h:23
static const std::vector< DtString > theEmptyStringSet
Definition: fedex.h:946
std::set< DtFederateHandle > DtFederateHandleStdSet
Definition: internalTypes.h:47
std::vector< DtFederateNameTypePair > DtFederateList
Definition: reportFederationMembersMsg.h:24
int myNumFederates
Definition: fedex.h:843
DtResignReason
Definition: resignMsg.h:26
#define DT_DLL_EXEC
Definition: rtiMsConfig.h:152
virtual int fedExHandle() const
Get the federation execution identifier as a handle Returns 0 if the identifier is being represented ...
vrlmod::DtThreadedObject * myDistributorThread
DtTIME.
Definition: fedex.h:944
DtResignResponse
Definition: resignRespMsg.h:12
DtList mySpAchievedCallbacks
Definition: fedex.h:910
std::map< DtFederateHandle, DtFederate * > DtFederateHandleInfoMap
Federate handle -> Federate info map.
Definition: fedex.h:108
std::map< DtFederateHandle, DtFedJoinInfo * > myJoiningFederates
List of joining federates waiting to be processed and confirmed.
Definition: fedex.h:866
bool mySave
Definition: fedex.h:875
Definition: vlThreadedObject.h:45