12 #ifndef DtAsyncFileDistributorRunnable_H_
13 #define DtAsyncFileDistributorRunnable_H_
18 #include <vlutil/vlRunnable.h>
19 #include <vlutil/vlThread.h>
21 #include <vlutil/vlThreadSafe.h>
47 virtual DtUniquePtr<DtDistributorThreadEvent> getNextEvent();
49 virtual void postCommand( DtUniquePtr<DtFedExecDistribFunctor> cmd);
56 virtual void registerRequestedModulesArrivedEvent(
const DtDistribFunctor& fn );
58 virtual void registerPushFedFileToFederatesEvent(
const DtDistribFunctor& fn );
59 virtual void registerPushFedFileToSingleFederateEvent(
const DtDistribFunctor& fn );
69 virtual void requestFedFileUploadToExec(
const unsigned long initiatingFedID,
70 const std::vector<DtString>* modules);
76 void processTakeFileCmd(std::map<DtString, DtFileInformation*>);
78 void processPushFedFileToAllFederates(DtString name,
int size,
const char* buff,
unsigned long destination);
101 void signalFrontEnd()
const;
102 bool executeCommand();
103 void processInternalCommands();
105 void clearEventList(
rtiMsgList& theEventList );
std::pair< DtDistributorThreadEvent *, bool > DtMsgFunctorIsMomMsgPair
Definition: asynchronousFileDistributor.h:128
DtDistributorThreadEventList myRequestedModuleArrivedEvents
Registered event functors.
Definition: asynchronousFileDistributor.h:119
DtDistributorThreadEventList myTakeFileEvents
Definition: asynchronousFileDistributor.h:120
Distributes fomModule files from initiating federate to RtiExec and then from RtiExec to all joining ...
Definition: fileDistributor.h:126
DtDistributorThreadEventList myFedFileReceivedEvents
Definition: asynchronousFileDistributor.h:122
DtUniquePtr< DtFedExecDistribFunctor > mySignal
Definition: asynchronousFileDistributor.h:109
DtFedExec * myFedEx
Definition: asynchronousFileDistributor.h:94
Sent by Federates to request fed file from RtiExec.
Definition: fomModuleRequestMsg.h:24
DtHandle DtFederateHandle
Definition: internalTypes.h:46
End Fedex Specific Event Definitions.
Definition: distributorThreadEvents.h:325
DtDistributorThreadEventList myPushFedFileToAllFederatesEvents
Definition: asynchronousFileDistributor.h:123
Definition: fomModuleDistributionMsg.h:25
and provides a very basic functor comparison operator
Definition: distributorThreadEvents.h:38
bool myStopped
Definition: asynchronousFileDistributor.h:106
Distributes fomModule files from initiating federate to RtiExec and then from RtiExec to all joining ...
Definition: asynchronousFileDistributor.h:33
DtDistributorThreadEventList myUploadRequestEvents
Definition: asynchronousFileDistributor.h:125
End Functor FedExec Functor Classes.
Definition: distributorThreadEvents.h:185
DtFileDistributor & operator=(const DtFileDistributor &orig)
DtDistributorThreadEventList myPushFedFileToSingleFederateEvents
Definition: asynchronousFileDistributor.h:124
DtUniquePtr< DtDistributorThreadEvent > myOnExitEvent
Definition: asynchronousFileDistributor.h:110
DtDistributorThreadEventList myFedFileRequestedEvents
Definition: asynchronousFileDistributor.h:121
virtual void fedFileUploaded(const MAKRti::DtString fileUploaded)
Called when Fom Module received successfully.
bool requestsPending() const
Are there outstanding requests to be handled?
virtual bool sendFedFile(const std::vector< MAKRti::DtString > &modules)
Override sendFedFile upload fed files passed in.
std::list< DtDistributorThreadEvent * > DtDistributorThreadEventList
Definition: asynchronousFileDistributor.h:98
Defines a ThreadedObject which can run a DtRunnable object in a thread.
std::list< DtRtiMsg * > rtiMsgList
Definition: fileDistributor.h:226
DtThreadSafeQueue< DtDistributorThreadEvent > myInternalCmdQueue
Definition: asynchronousFileDistributor.h:116
#define DT_DLL_EXEC
Definition: rtiMsConfig.h:152
DtThreadSafeQueue< DtDistributorThreadEvent > myPendingCommands
Definition: asynchronousFileDistributor.h:112
DtThreadSafeQueue< DtDistributorThreadEvent > myEventQueue
Definition: asynchronousFileDistributor.h:114