MAK RTIspy API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
initiatorLatencyTest.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2008 VT MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 /*******************************************************************************
6 ** $RCSfile: initiatorLatencyTest.h,v $ $Revision: 1.8 $ $State: Exp $
7 *******************************************************************************/
8 
12 
13 #ifndef DtInitiatorLatencyTest_H_
14 #define DtInitiatorLatencyTestr_H_
15 
16 
17 #include "rtiMsConfig.h"
18 #include "latencyTest.h"
19 #include <vlutil/vlString.h>
20 #include <vlutil/vlTime.h>
21 #include <vlutil/vlFedTarget.h>
22 #include <metadata.h>
23 #include "RIDparams.h"
25 
26 class DtConnectionMgr;
30 
31 
32 
33 
34 
37 
39 {
40 
41 public:
42 
45 
48 
50  virtual ~DtInitiatorLatencyTest();
51 
53  virtual bool tick();
54 
57  virtual void addSendInteractionTimeStamp( unsigned int testID );
58 
61  virtual void addNetSendTimeStamp( unsigned int testID, DtRtiMsg& msg );
62 
65  virtual void addNetReceiveTimeStamp( unsigned int testID, const DtRtiMsg& msg );
66 
69  virtual void addReceiveInteractionTimeStamp( unsigned int testID, MAKRti::DtTime timeToUse );
70 
73  virtual void addAsyncQueueMsgTimeStamp( unsigned int testID, const DtRtiMsg& msg );
74 
76  virtual bool canInitiateTest() const;
77 
78  virtual bool takeCompletedTestReport( unsigned int trialID,
79  DtAveragedLatencyTestReport& takenReport);
80 
82  virtual void initiateLatencyTest(unsigned int trialID,
83  unsigned int numInteractions,
84  unsigned int sizeOfPayload,
85  MAKRti::DtTime periodBetweenSends,
86  DtFederateHandle handle);
87 
89  virtual bool testIsFinished( unsigned int testID ) const;
90 
92  virtual void getCurrentTestInfo(unsigned int& testID,
93  DtFederateHandle& handle,
94  MAKRti::DtTransportType& transport,
95  unsigned int& payloadSize ) const;
96 
98  virtual bool trialIsFinished( unsigned int trialID ) const;
99 
100 
101 protected:
102 
106  virtual bool getCompletedReportByTestID( unsigned int testID,
107  DtLatencyTestReportStruct& report ) const;
108 
110  virtual void averageReports(const std::vector<DtLatencyTestReportStruct*>& bestEffortTests,
111  const std::vector<DtLatencyTestReportStruct*>& reliableTests,
112  DtFederateHandle recipientHandle,
113  DtFederateHandle initiatorHandle,
114  const MAKRti::DtString& recipientName,
115  const MAKRti::DtString& initiatorName,
118  unsigned int numBestEffortDropped,
119  unsigned int numReliableDropped,
120  DtAveragedLatencyTestReport& averaged) const;
121 
122 
124  virtual unsigned int currTestId() const;
125 
127  virtual void consumeTestId();
128 
129 private:
132 
135 
136 protected:
137 
138  MAKRti::DtTime myNextSend;
139  unsigned short myTestOffset;
140 
141  typedef std::pair<unsigned int, MAKRti::DtTransportType> DtNumToTypePair;
142  typedef std::multimap<DtFederateHandle, DtNumToTypePair> DtFedHandleToTestMap;
143 
144  // Storage of my completed initiated tests.
145  DtTestToTimeStampMap myCompletedInitiatedTests;
146  std::map<unsigned int, DtFederateHandle> myFedHandleByTestID;
147 
150  unsigned int myNumTestsToAverage;
151 
155  MAKRti::DtTime myLatencyInterval;
156 
159  unsigned int myPayloadSize;
160 
162  std::map<unsigned int, DtRIDParameters::DtAsynchronousIOModeEnum> myRecipientAsyncIOModeByFedHandle;
163 
166  std::set<unsigned int> myInitiatedTestIDs;
167 
170  std::map<unsigned int, DtFedHandleToTestMap> myNumberOfInteractionsLeftByFederate;
171 
173  std::map<unsigned int, DtRtiMtdFederateHostInformation::DtFederateHostInformation> myRecipientHostInfoMap;
174 
176  std::map<unsigned int, std::set<unsigned int> > myTestIDsByTrial;
177 
179  unsigned int myTestIDOfCurrentTest;
180 
181 
182 };
183 
184 #endif

Document ID: Generated on Fri Sep 27 00:57:56 EDT 2019 from SVN revision 201708
Copyright © 2005-2018 VT MÄK Inc. All Rights Reserved (www.mak.com)