MAK RTIspy API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
federateCounterProcessor.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2005 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: federateCounterProcessor.h,v $ $Revision: 1.4 $ $State: Exp $
7 *********************************************************************/
10 
11 #ifndef DtFederateCounterProcessor_H_
12 #define DtFederateCounterProcessor_H_
13 
14 #include "forwarderNode.h"
15 #include "forwarderCounterMsg.h"
16 #include "routeMap.h"
17 #include "rtiMsConfig.h"
18 
19 #include <vlutil/vlUtil.h>
20 #include <map>
21 #include <set>
22 
24 class DtRtiExecDisconnectFilter;
25 
44 {
45 public:
47  typedef bool (DtFederateCounterProcessor::* CounterMsgHandlerMemberCb)(
48  const DtInetAddrAndPort& src, const DtForwarderCounterMsg& msg );
49  typedef bool (DtFederateCounterProcessor::* DestinationProcessingMemberCb)(
50  const DtInetAddrAndPort& src, DtForwarderPort::DtAddressPortList& destinations );
51 
53  DtFederateCounterProcessor( std::shared_ptr<DtForwarderNode> parent );
54 
56  virtual ~DtFederateCounterProcessor();
57 
59  virtual bool gotMsgToOutPort( const DtInetAddrAndPort& src,
60  const DtForwarderCounterMsg& msg );
61 
64  virtual bool processCounterMsgDestinations ( const DtInetAddrAndPort& src,
65  DtForwarderPort::DtAddressPortList& destinations );
66 
67 public:
68 
70  static int lostConnection( const MAKRti::DtString& connName, const MAKRti::DtString& hostName,
71  unsigned int connID, const std::pair<DtInetAddrAndPort, DtInetAddrAndPort>& connAddr, void* usr );
72 
73  static int reconnectBegun(const MAKRti::DtString& connName, const MAKRti::DtString& hostName,
74  unsigned int connID, const DtInetAddrAndPort& connAddr, void* usr);
75 
76 protected:
77 
79  virtual int lostConnection( const MAKRti::DtString& connName, const MAKRti::DtString& hostName,
80  unsigned int connID, const std::pair<DtInetAddrAndPort, DtInetAddrAndPort>& connAddr);
81 
82  virtual int reconnectBegun(const MAKRti::DtString& connName, const MAKRti::DtString& hostName,
83  unsigned int connID, const DtInetAddrAndPort& connAddr);
84 
86  virtual void sendResponseMsg( const DtInetAddrAndPort& destination,
87  unsigned int federateCount, const DtInetAddrAndPort* addr = 0 );
88 
91  virtual void requestDownstreamCount( const DtInetAddrAndPort& destination );
92  virtual void requestDownstreamCount( const DtInetAddrAndPort& destination,
93  const DtRouteMap::DtAddressPortList& destinations );
94 
96  virtual bool processInToOutMsg( const DtInetAddrAndPort& src,
97  const DtForwarderCounterMsg& msg );
98 
100  virtual bool processLanToOutMsg( const DtInetAddrAndPort& src,
101  const DtForwarderCounterMsg& msg );
102 
103 
104 protected:
105 
108  {
109  public:
111  currentCount( 0 ),
112  destinationAddress(),
113  sourceAddress(),
114  pendingOutResponses() {}
115 
117  const DtRouteMap::DtAddressPortList& expectedOutResponses ) :
118  currentCount( 0 ),
119  destinationAddress( dest ),
120  sourceAddress( src ),
121  pendingOutResponses( expectedOutResponses ) {}
122 
123  unsigned int currentCount;
127  };
128 
129  typedef std::map< DtInetAddrAndPort, PendingRequest > DtDestToRequestMap;
130 
131 protected:
132 
133  std::shared_ptr<DtForwarderNode> myParent;
135 
138 
139 };
140 
141 #endif
142 
Simple helper class to hold status of pending Pings.
Definition: federateCounterProcessor.h:107
std::pair< MAKRti::DtInetAddr, int > DtInetAddrAndPort
Definition: rtiUtil.h:148
DtRouteMap::DtAddressPortList pendingOutResponses
Definition: federateCounterProcessor.h:126
DtDestToRequestMap myPendingRequests
Map of outstanding Count Requests to Responses.
Definition: federateCounterProcessor.h:137
DtInetAddrAndPort sourceAddress
Definition: federateCounterProcessor.h:125
PendingRequest(const DtInetAddrAndPort &src, const DtInetAddrAndPort &dest, const DtRouteMap::DtAddressPortList &expectedOutResponses)
Definition: federateCounterProcessor.h:116
unsigned int currentCount
Definition: federateCounterProcessor.h:123
std::shared_ptr< DtForwarderNode > myParent
Definition: federateCounterProcessor.h:133
The DtFederateCounterProcessor class consists of filters for FederateCounter messages for forwarder n...
Definition: federateCounterProcessor.h:43
DtFederateCounterFilter * myMsgToOutFilter
Definition: federateCounterProcessor.h:134
DtRouteMap::DtAddressPortList DtAddressPortList
Definition: forwarderPort.h:54
PendingRequest()
Definition: federateCounterProcessor.h:110
Definition: forwarderCounterMsg.h:25
DtInetAddrAndPort destinationAddress
Definition: federateCounterProcessor.h:124
std::map< DtInetAddrAndPort, PendingRequest > DtDestToRequestMap
Definition: federateCounterProcessor.h:129
Simple message processing filter which forwards forwarder counter messages to its parent counter proc...
Definition: federateCounterFilter.h:25
#define DT_DLL_FORWARDER
Definition: rtiMsConfig.h:153
std::vector< DtInetAddrAndPort > DtAddressPortList
Definition: routeMap.h:59

Document ID: Generated on Sun Jul 20 16:15:30 EDT 2025 from SVN revision 277985
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)