VR-Link API Documentation for HLA 1.3
 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 
11 
12 
13 
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 

Document ID: Generated on Mon Apr 8 04:49:21 EDT 2019 from SVN revision 197403
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)