VR-Link API Documentation for HLA Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vlTcpSocket.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992, 1997 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 /*********************************************************************
6 ** $RCSfile: vlTcpSocket.h,v $ $Revision: 1.2.6.5 $ $State: Exp $
7 *********************************************************************/
8 #ifndef vlTcpSocket_H_
9 #define vlTcpSocket_H_
10 
14 #include "vlSocket.h"
15 
16 #ifdef DtUSE_UTILITIES_NAMESPACE
17 namespace DtUSE_UTILITIES_NAMESPACE
18 {
19 #endif
20 
26 {
27 public:
28 
29  DtTcpMessage( const char* buff, int size );
30  DtTcpMessage( const char* buff, int offset, int size );
31  ~DtTcpMessage();
32 
33  char* myBuff;
34  int mySize;
35 
36 private:
38  DtTcpMessage(const DtTcpMessage &);
39 
41  DtTcpMessage &operator=(const DtTcpMessage &);
42 
43 };
44 
48 {
49 public:
50 
52  DtTcpSocket(int socketfd, DtIpv4Addr addr, int clientPort = 0);
53 
55  DtTcpSocket(DtIpv4Addr addr, int port=DtDEFAULT_PORT,
56  int nonBlockingConnect=0);
57 
59  virtual ~DtTcpSocket();
60 
65  virtual int sendTo(caddr_t packet, size_t packetSize,
67 
68  virtual int DtRecv(caddr_t *buffptr, int *status=NULL);
69 
70  virtual int DtRecv(caddr_t buff, size_t bufsize);
71 
74  virtual DtFlushStatus flush();
75 
79  virtual DtFlushStatus flush(long& byteCount);
80 
82  virtual void DtBecomeNonBlocking();
83 
85  virtual void DtBecomeBlocking();
86 
89  virtual bool isOk() const;
90 
94  virtual bool isConnectionEstablished();
95 
101  virtual bool testConnectionStatus();
102 
103 
105  inline DtIpv4Addr getConnectionAddr() const;
106 
108  int sizeOffset() const { return mySizeOffset; }
109  void setSizeOffset(int offset);
110 
112  int sizeLength() const { return mySizeLength; }
113  void setSizeLength(int length);
114 
117  virtual void setNoDelay(bool onOff);
118 
120  virtual int peerPort() const;
121 
123  virtual int localPort() const;
124 
126  int maxForwarderQueue() const;
127  void setMaxForwarderQueue( int maxForwarderQueue );
128 
129 public:
130 
133  static void setNoDelay(int sockfd, bool onOff);
134 
140  static void setPacketBufferSize(int size);
141 
145  std::pair<int, int> getQueueStatus() const;
146 
147 protected:
148 
153  int sendTo(caddr_t packet, size_t packetSize, bool reportMinSizePktFaults );
154 
155  int recvWithStatus(caddr_t *buffptr, int *status);
156  int checkSize(int size, caddr_t *buffptr, int *status);
157  bool expandPktBuffer( unsigned int sizeNeeded );
158  int sendMinimumSizePkt( bool reportMinSizePktFaults );
159 
160 private:
161 
163  DtTcpSocket(const DtTcpSocket &);
164 
166  DtTcpSocket& operator=(const DtTcpSocket &);
167 
168 protected:
169 
170  char* myPktBuff;
171  unsigned int myPktBuffSize;
175  bool myOk;
181 
185 
188 
189 protected:
190 
191  static int thePktBuffSize;
192 };
193 
195 {
196  return myConnectAddr;
197 }
198 
199 inline bool DtTcpSocket::isOk() const
200 {
201  return myOk;
202 }
203 
204 #ifdef DtUSE_UTILITIES_NAMESPACE
205 }
206 #endif
207 
208 
209 #endif
210 
211 
212 
213 
214 
215 
216 
217 
218 
Encapsulates a message for storage in a message queue.
Definition: vlTcpSocket.h:25
static int thePktBuffSize
Definition: vlTcpSocket.h:191
DtU32 DtIpv4Addr
Definition: vlUtil.h:245
An implementation of DtSocket which uses a TCP connection.
Definition: vlTcpSocket.h:47
DtSocket provides a low level interface for packet I/O with VR-Link applications. ...
Definition: vlSocket.h:110
int myMaxForwarderQueue
Max forwarder queue size.
Definition: vlTcpSocket.h:187
virtual bool isOk() const
passively checks for errors in the socket.
Definition: vlTcpSocket.h:199
#define DtDEFAULT_PORT
Definition: vlSocket.h:49
DtFlushStatus
Definition: vlSocket.h:71
int mySize
Definition: vlTcpSocket.h:34
int mySizeLength
Definition: vlTcpSocket.h:178
DtList * myPktWaitList
List for saving un-sent packets.
Definition: vlTcpSocket.h:184
int mySizeOffset
Definition: vlTcpSocket.h:177
DtList is deprecated, please use std::list&lt;T&gt;.
Definition: vlList.h:71
const DtIpv4Addr DtUSE_DEFAULT_IP_ADDR
Definition: vlSocket.h:54
DtIpv4Addr getConnectionAddr() const
Get the address of the connected remote host.
Definition: vlTcpSocket.h:194
unsigned int myPktBuffSize
Definition: vlTcpSocket.h:171
int myNumBytesReceived
Definition: vlTcpSocket.h:180
This file declares DtSocket as well as several useful constents and helper classes.
bool myOk
Definition: vlTcpSocket.h:175
int myPeerPort
Definition: vlTcpSocket.h:173
int sizeOffset() const
Get/Set mySizeOffset.
Definition: vlTcpSocket.h:108
DtIpv4Addr myConnectAddr
Definition: vlTcpSocket.h:172
int sizeLength() const
Get/Set mySizeLength.
Definition: vlTcpSocket.h:112
char * myPktBuff
Definition: vlTcpSocket.h:170
int myLocalPort
Definition: vlTcpSocket.h:174
#define DT_DLL_NETCOMPAT
Definition: vlMachineTypes.h:111
int myNeedSize
Definition: vlTcpSocket.h:176
char * myBuff
Definition: vlTcpSocket.h:33
int myNumBytesToWaitFor
Definition: vlTcpSocket.h:179

Document ID: Generated on Mon Apr 25 03:39:01 EDT 2022 from SVN revision 242502
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)