MAK RTIspy API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
forwarderPingProcessor.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2005 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: forwarderPingProcessor.h,v $ $Revision: 1.4 $ $State: Exp $
7 *********************************************************************/
10 
11 #ifndef DtForwarderPingProcessor_H_
12 #define DtForwarderPingProcessor_H_
13 
14 #include "forwarderNode.h"
15 #include "forwarderPingMsg.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 
34 {
35 public:
37  typedef bool (DtForwarderPingProcessor::* PingMsgHandlerMemberCb)(
38  const DtInetAddrAndPort& src, const DtForwarderPingMsg& msg );
39  typedef bool (DtForwarderPingProcessor::* DestinationProcessingMemberCb)(
40  const DtInetAddrAndPort& src, DtForwarderPort::DtAddressPortList& destinations );
41 
43  DtForwarderPingProcessor( std::shared_ptr<DtForwarderNode> parent );
44 
46  virtual ~DtForwarderPingProcessor();
47 
49  virtual bool gotMsgToLanPort( const DtInetAddrAndPort& src,
50  const DtForwarderPingMsg& msg );
51 
53  virtual bool gotMsgToOutPort( const DtInetAddrAndPort& src,
54  const DtForwarderPingMsg& msg );
55 
58  virtual bool processPingMsgDestinations ( const DtInetAddrAndPort& src,
59  DtForwarderPort::DtAddressPortList& destinations );
60 
64  virtual bool ignorePingMsgToLan ( 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 protected:
74 
76  virtual int lostConnection( const MAKRti::DtString& connName, const MAKRti::DtString& hostName,
77  unsigned int connID, const std::pair<DtInetAddrAndPort, DtInetAddrAndPort>& connAddr);
78 
81  virtual void sendResponseMsg( unsigned long target,
83  const DtInetAddrAndPort* addr = 0 );
84 
86  virtual bool processInToOutMsg( const DtInetAddrAndPort& src,
87  const DtForwarderPingMsg& msg );
88 
90  virtual bool processLanToOutMsg( const DtInetAddrAndPort& src,
91  const DtForwarderPingMsg& msg );
92 
93 
94 protected:
95 
98  {
99  public:
101  currentStatus(DtForwarderPingMsg::PingResponseNotFound),
102  destinationId(0),
103  sourceAddress(),
104  pendingOutResponses() {}
105 
106  PendingRequest(const DtInetAddrAndPort& src, unsigned int destId,
107  const DtRouteMap::DtAddressPortList& expectedOutResponses) :
108  currentStatus(DtForwarderPingMsg::PingResponseNotFound),
109  destinationId(destId),
110  sourceAddress(src),
111  pendingOutResponses(expectedOutResponses) {}
112  private:
113 
114  public:
116  {
117  *this = orig;
118  }
120  {
121  if (this != &orig)
122  {
123  currentStatus = orig.currentStatus;
124  destinationId = orig.destinationId;
125  sourceAddress = orig.sourceAddress;
126  pendingOutResponses = orig.pendingOutResponses;
127  }
128  return *this;
129  }
130 
131  public:
133  unsigned int destinationId;
136  };
137 
138  typedef std::map< unsigned long, PendingRequest > DtDestToRequestMap;
139 
140 protected:
141 
142  std::shared_ptr<DtForwarderNode> myParent;
145 
148 
149 };
150 
151 #endif
152 
DtDestToRequestMap myPendingRequests
Map of outstanding Ping Requests to Responses.
Definition: forwarderPingProcessor.h:147
std::pair< MAKRti::DtInetAddr, int > DtInetAddrAndPort
Definition: rtiUtil.h:148
PendingRequest(const PendingRequest &orig)
Definition: forwarderPingProcessor.h:115
unsigned int destinationId
Definition: forwarderPingProcessor.h:133
DtRouteMap::DtAddressPortList pendingOutResponses
Definition: forwarderPingProcessor.h:135
Simple helper class to hold status of pending Pings.
Definition: forwarderPingProcessor.h:97
PendingRequest & operator=(const PendingRequest &orig)
Definition: forwarderPingProcessor.h:119
std::map< unsigned long, PendingRequest > DtDestToRequestMap
Definition: forwarderPingProcessor.h:138
std::shared_ptr< DtForwarderNode > myParent
Definition: forwarderPingProcessor.h:142
DtPingStatus
Definition: forwarderPingMsg.h:26
DtRouteMap::DtAddressPortList DtAddressPortList
Definition: forwarderPort.h:54
PendingRequest(const DtInetAddrAndPort &src, unsigned int destId, const DtRouteMap::DtAddressPortList &expectedOutResponses)
Definition: forwarderPingProcessor.h:106
The DtForwarderPingProcessor class consists of filters for ForwarderPing messages for forwarder nodes...
Definition: forwarderPingProcessor.h:33
DtInetAddrAndPort sourceAddress
Definition: forwarderPingProcessor.h:134
DtForwarderPingFilter * myMsgToOutFilter
Definition: forwarderPingProcessor.h:144
PendingRequest()
Definition: forwarderPingProcessor.h:100
DtForwarderPingMsg::DtPingStatus currentStatus
Definition: forwarderPingProcessor.h:132
Definition: forwarderPingMsg.h:23
DtForwarderPingFilter * myMsgToLanFilter
Definition: forwarderPingProcessor.h:143
Simple message processing filter which forwards forwarder ping messages to its parent ping processor...
Definition: forwarderPingFilter.h:25
#define DT_DLL_FORWARDER
Definition: rtiMsConfig.h:153
std::vector< DtInetAddrAndPort > DtAddressPortList
Definition: routeMap.h:59

Document ID: Generated on Wed Jul 8 16:20:32 EDT 2026 from SVN revision 291616
Copyright © 2005-2025 MAK Technologies Inc. All Rights Reserved (www.mak.com)