VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtCigiNetworkIO.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2018 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCigi/vrvCigi.h>
14 
16 
17 #include <vlutil/vlInetSocket.h>
18 
19 #include "CigiTypes.h"
20 
21 class CigiHatHotRespV3_2;
22 class CigiLosRespV3_2;
23 class CigiLosXRespV3_2;
24 
25 class DtInetSocket;
26 class DtInetSocketMgr;
27 class DtInetTcpSocket;
28 class CigiIGSession;
29 class CigiBasePacket;
30 class CigiBaseIGCtrl;
31 
32 namespace makCigiExt
33 {
34  class DtCigiDiGuyCtrl;
35  class DtCigiDiGuyCtrlExt;
36 }
37 
38 namespace makVrv
39 {
40  class DtCigiConnectionInitializer;
41  class DtCigiSignalProcessor;
42  class DtCigiConnection;
43  class DtCigiLosBasicResponse;
44  class DtCigiLosExtendedResponse;
45 
52  {
53  public:
54  friend class DtCigiNetworkIOCreator;
55 
57  virtual ~DtCigiNetworkIO();
58 
61  virtual bool receiveCigiMessages();
62 
71  virtual bool sendCigiMessages(unsigned int frameNumber, unsigned int lastHostFrameNumber,
72  int igMode, int databaseNumber);
73 
77  virtual bool readyToSendCigiMessages() const;
78 
81  virtual void setSignalProcessor(DtCigiSignalProcessor& sigProcessor);
82 
84  virtual void sendHatHotResponse(double height, unsigned int hotId, bool hat,
85  unsigned int lastHostFrameNumber, bool valid);
86 
88  virtual void sendLosBasicResponse(DtCigiLosBasicResponse* losResponse);
89 
91  virtual void sendLosExtendedResponse(DtCigiLosExtendedResponse* losResponse);
92 
96  virtual void sendUserPacket( CigiBasePacket* packet );
97 
99 
100 
101  virtual CigiIGSession& session();
102  virtual const CigiIGSession& session() const;
104 
106  bool cigiSessionExists() const;
107 
109  virtual void packLosBasicResponse(const DtCigiLosBasicResponse& response, CigiLosRespV3_2& respPacket);
110 
112  virtual void packLosExtendedResponse(const DtCigiLosExtendedResponse& response, CigiLosXRespV3_2& respPacket);
113 
115  virtual bool registerUserPacket(CigiBasePacket *packet,
116  unsigned int packetId, bool hostSend, bool igSend);
117 
119  static bool addSocketCb(DtInetSocket* sock, void* usr);
120 
122  static bool removeSocketCb(DtInetSocket* sock, void* usr);
123 
124  protected:
128  DtCigiNetworkIO(const DtCigiConnectionInitializer& initializer,
129  DtCigiConnection& connection );
130 
132  virtual void initializeUdpSocket(const DtInetEndpoint& endpoint,
133  unsigned int listenPort, DtInetDevice* device);
134 
136  virtual void initializeTcpSocket(const DtInetEndpoint& endpoint,
137  DtInetDevice* device, int localPort);
138 
140  virtual void addSocket(DtInetTcpSocket* sock);
141 
143  virtual void removeSocket(DtInetTcpSocket* sock);
144 
145  virtual DtInetAddr findFirstNetworkDeviceAddress(bool& found) const;
146 
149  CigiBaseIGCtrl* igControlPacket( Cigi_uint8* Dta );
150 
152  DtCigiNetworkIO(const DtCigiNetworkIO& orig);
153 
155  DtCigiNetworkIO& operator=(const DtCigiNetworkIO& orig);
156 
157  protected:
160  {
161  double hatHotValue;
162  int hatHotId;
164  unsigned int lastHostFrameNumber;
165  bool valid;
166  };
167 
169 
171  DtInetSocket* mySocket;
172 
174  CigiIGSession* myCigiIgSession;
175 
177  DtInetBufferChain myReceiveBufferChain;
178 
180  DtInetBuffer myReceiveBuffer;
181 
183  unsigned int myReceiveBufferSize;
184 
186  DtInetEndpoint myDestinationAddress;
187 
190 
193  DtInetSocketMgr* mySocketMgr;
194 
198 
202 
206 
208  std::vector<HatHotResponseData> myHatHotResponses;
209 
211  std::vector<DtCigiLosBasicResponse*> myLosBasicResponses;
212  std::vector<DtCigiLosExtendedResponse*> myLosExtendedResponses;
213 
214  std::vector<CigiBasePacket*> myUserPacketsToSend;
215 
217  double myTimeSlice;
218 
222 
227  };
228 
231  {
232  public:
235 
237  virtual ~DtCigiNetworkIOCreator();
238 
240  static DtCigiNetworkIOCreator& instance( DtDe& de );
241 
243  static DtCigiNetworkIOCreator& instance( DtCigiConnection& con );
244 
246  static void copyInstance(DtCigiConnection& con, DtDe& de);
247 
249  virtual DtCigiNetworkIO* create( const DtCigiConnectionInitializer& initializer,
250  DtCigiConnection& connection ) const;
251  };
252 }

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)