![]() |
VR-Forces 4.0.4 Class Documentation
|
This class performs all of the network I/O for CIGI messages. More...
Classes | |
| struct | HatHotResponseData |
| The internal structure for a HAT/HOT Response. More... | |
| struct | LosResponseData |
| The internal structure for a LOS Response. More... | |
Public Member Functions | |
| DtCigiNetworkIO (const DtCigiConnectionInitializer &initializer) | |
| Constructor Creates the appropriate socket based on the connection type in the initializer and sets up the CIGI Session. | |
| virtual | ~DtCigiNetworkIO () |
| Destructor. | |
| virtual bool | receiveCigiMessages () |
| Receives any CIGI messages from the network and processes them. | |
| virtual bool | sendCigiMessages (unsigned int frameNumber, unsigned int lastHostFrameNumber, int igMode, int databaseNumber) |
| Sends CIGI messages to the host. | |
| virtual void | setSignalProcessor (DtCigiSignalProcessor &sigProcessor) |
| Set the object that will receive CIGI signals and emit signals for CIGI message processing. | |
| virtual void | sendHatHotResponse (double height, unsigned int hotId, bool hat, unsigned int lastHostFrameNumber, bool valid) |
| Queues up a HAT/HOT response for sending when sendCigiMessages is called. | |
| virtual void | sendLosResponse (int losId, int entityId, bool visible, double range, int responseCount, int hostFrame) |
| Queues up a LOS response for sending when sendCigiMessges is called. | |
Static Public Member Functions | |
| static bool | addSocketCb (DtInetSocket *sock, void *usr) |
| Callback when a TCP connection is added. Used only in TCP server mode. | |
| static bool | removeSocketCb (DtInetSocket *sock, void *usr) |
| Callback when a TCP connection is removed. Used only in TCP server mode. | |
Protected Member Functions | |
| virtual void | initializeUdpSocket (const DtInetEndpoint &endpoint, unsigned int listenPort, DtInetDevice *device) |
| Initialize a UDP socket. | |
| virtual void | initializeTcpSocket (const DtInetEndpoint &endpoint, DtInetDevice *device, int localPort) |
| Initialize a TCP client socket. | |
| virtual void | addSocket (DtInetTcpSocket *sock) |
| Called from addSocketCb. | |
| virtual void | removeSocket (DtInetTcpSocket *sock) |
| Called from removeSocketCb. | |
| virtual DtInetAddr | findFirstNetworkDeviceAddress (bool &found) const |
| DtCigiNetworkIO (const DtCigiNetworkIO &orig) | |
| Non-copyable. | |
| DtCigiNetworkIO & | operator= (const DtCigiNetworkIO &orig) |
| Non-copyable. | |
Protected Attributes | |
| DtInetSocket * | mySocket |
| The socket. May be a UDP or TCP socket. | |
| CigiIGSession * | myCigiIgSession |
| The CIGI Session. | |
| DtInetBufferChain | myReceiveBufferChain |
| The buffer chain used to receive CIGI messages. | |
| DtInetBuffer | myReceiveBuffer |
| The buffer used to receive CIGI messages. | |
| unsigned int | myReceiveBufferSize |
| The size of the buffer used to receive CIGI messages. | |
| DtInetEndpoint | myDestinationAddress |
| The address/port of the host. | |
| DtInetSocketMgr * | mySocketMgr |
| The socket manager holds the TCP server socket and manages connections in TCP server mode. | |
| bool | myUseTcpClient |
| Whether using TCP client mode. | |
| bool | myUseTcpServer |
| Whether we're using TCP server mode. | |
| bool | myUseSychronousMode |
| Whether we're using sychronous mode or not. | |
| std::vector< HatHotResponseData > | myHatHotResponses |
| The HAT/HOT Response queue. | |
| std::vector< LosResponseData > | myLosResponses |
| The LOS Response queue. | |
This class performs all of the network I/O for CIGI messages.
This includes setting up the CIGI session, managing sockets, and setting the signal processor so that messages can be processed by the IG and responses can be sent back to the host.
| makVrv::DtCigiNetworkIO::DtCigiNetworkIO | ( | const DtCigiConnectionInitializer & | initializer | ) |
Constructor Creates the appropriate socket based on the connection type in the initializer and sets up the CIGI Session.
| virtual makVrv::DtCigiNetworkIO::~DtCigiNetworkIO | ( | ) | [virtual] |
Destructor.
| makVrv::DtCigiNetworkIO::DtCigiNetworkIO | ( | const DtCigiNetworkIO & | orig | ) | [protected] |
Non-copyable.
| virtual bool makVrv::DtCigiNetworkIO::receiveCigiMessages | ( | ) | [virtual] |
Receives any CIGI messages from the network and processes them.
| virtual bool makVrv::DtCigiNetworkIO::sendCigiMessages | ( | unsigned int | frameNumber, |
| unsigned int | lastHostFrameNumber, | ||
| int | igMode, | ||
| int | databaseNumber | ||
| ) | [virtual] |
Sends CIGI messages to the host.
Sends start-of-frame if in synchronous mode, and any HAT/HOT/LOS responses that are queued up. The parameters are only used when sending start-of-frame.
| frameNumber | The current IG frame. |
| lastHostFrameNumber | The host frame from the last IG Control received. |
| igMode | The mode of the IG (see the CIGI ICD for values) |
| databaseNumber | The database number currently loaded/loading. |
| virtual void makVrv::DtCigiNetworkIO::setSignalProcessor | ( | DtCigiSignalProcessor & | sigProcessor | ) | [virtual] |
Set the object that will receive CIGI signals and emit signals for CIGI message processing.
| virtual void makVrv::DtCigiNetworkIO::sendHatHotResponse | ( | double | height, |
| unsigned int | hotId, | ||
| bool | hat, | ||
| unsigned int | lastHostFrameNumber, | ||
| bool | valid | ||
| ) | [virtual] |
Queues up a HAT/HOT response for sending when sendCigiMessages is called.
| virtual void makVrv::DtCigiNetworkIO::sendLosResponse | ( | int | losId, |
| int | entityId, | ||
| bool | visible, | ||
| double | range, | ||
| int | responseCount, | ||
| int | hostFrame | ||
| ) | [virtual] |
Queues up a LOS response for sending when sendCigiMessges is called.
| static bool makVrv::DtCigiNetworkIO::addSocketCb | ( | DtInetSocket * | sock, |
| void * | usr | ||
| ) | [static] |
Callback when a TCP connection is added. Used only in TCP server mode.
| static bool makVrv::DtCigiNetworkIO::removeSocketCb | ( | DtInetSocket * | sock, |
| void * | usr | ||
| ) | [static] |
Callback when a TCP connection is removed. Used only in TCP server mode.
| virtual void makVrv::DtCigiNetworkIO::initializeUdpSocket | ( | const DtInetEndpoint & | endpoint, |
| unsigned int | listenPort, | ||
| DtInetDevice * | device | ||
| ) | [protected, virtual] |
Initialize a UDP socket.
| virtual void makVrv::DtCigiNetworkIO::initializeTcpSocket | ( | const DtInetEndpoint & | endpoint, |
| DtInetDevice * | device, | ||
| int | localPort | ||
| ) | [protected, virtual] |
Initialize a TCP client socket.
| virtual void makVrv::DtCigiNetworkIO::addSocket | ( | DtInetTcpSocket * | sock | ) | [protected, virtual] |
Called from addSocketCb.
| virtual void makVrv::DtCigiNetworkIO::removeSocket | ( | DtInetTcpSocket * | sock | ) | [protected, virtual] |
Called from removeSocketCb.
| virtual DtInetAddr makVrv::DtCigiNetworkIO::findFirstNetworkDeviceAddress | ( | bool & | found | ) | const [protected, virtual] |
| DtCigiNetworkIO& makVrv::DtCigiNetworkIO::operator= | ( | const DtCigiNetworkIO & | orig | ) | [protected] |
Non-copyable.
DtInetSocket* makVrv::DtCigiNetworkIO::mySocket [protected] |
The socket. May be a UDP or TCP socket.
CigiIGSession* makVrv::DtCigiNetworkIO::myCigiIgSession [protected] |
The CIGI Session.
DtInetBufferChain makVrv::DtCigiNetworkIO::myReceiveBufferChain [protected] |
The buffer chain used to receive CIGI messages.
DtInetBuffer makVrv::DtCigiNetworkIO::myReceiveBuffer [protected] |
The buffer used to receive CIGI messages.
unsigned int makVrv::DtCigiNetworkIO::myReceiveBufferSize [protected] |
The size of the buffer used to receive CIGI messages.
DtInetEndpoint makVrv::DtCigiNetworkIO::myDestinationAddress [protected] |
The address/port of the host.
DtInetSocketMgr* makVrv::DtCigiNetworkIO::mySocketMgr [protected] |
The socket manager holds the TCP server socket and manages connections in TCP server mode.
bool makVrv::DtCigiNetworkIO::myUseTcpClient [protected] |
Whether using TCP client mode.
If this and myUseTcpServer are false, UDP is being used.
bool makVrv::DtCigiNetworkIO::myUseTcpServer [protected] |
Whether we're using TCP server mode.
If this and myUseTcpClient are false, UDP is being used.
bool makVrv::DtCigiNetworkIO::myUseSychronousMode [protected] |
Whether we're using sychronous mode or not.
Start of frame CIGI messages will only be sent in sychronous mode.
std::vector<HatHotResponseData> makVrv::DtCigiNetworkIO::myHatHotResponses [protected] |
The HAT/HOT Response queue.
std::vector<LosResponseData> makVrv::DtCigiNetworkIO::myLosResponses [protected] |
The LOS Response queue.