24 #if defined(__solaris__) || defined(__sgi__)
25 #define DtRead ((DtU8) 0x01)
28 #define DtWrite ((DtU8) 0x02)
30 #define DtReadWrite (DtRead | DtWrite)
32 #define DtBindToDestAddr ((DtU8) 0x08)
35 #define DtQuiet ((DtU8) 0x10)
41 #ifdef DtUSE_UTILITIES_NAMESPACE
42 namespace DtUSE_UTILITIES_NAMESPACE
100 virtual int sendTo(caddr_t packet,
size_t size,
DtIpv4Addr addr);
104 virtual int DtRecv(caddr_t* buffptr,
int* status = NULL);
108 virtual int DtRecv(caddr_t buff,
size_t);
114 virtual void DtBecomeNonBlocking(
void);
123 virtual void setBundling(
int maxBundleSize,
bool enableUnbundling,
124 int minPacketSize,
int sizeOffset,
int sizeLength,
bool testDisHeader );
127 virtual void setBundling(
int maxBundleSize);
133 virtual void setUnbundling(
int onOff);
134 virtual int isUnbundling();
141 virtual int minPacketSize();
142 virtual void setMinPacketSize(
int size );
149 virtual int sizeOffset();
150 virtual void setSizeOffset(
int offset );
157 virtual int sizeLength();
158 virtual void setSizeLength(
int length );
167 virtual bool testDisHeader();
168 virtual void enableDisHeaderTest(
bool shouldTest );
174 virtual int readFd();
175 virtual int writeFd();
179 virtual bool isOk()
const;
184 virtual int listenToMulticastGroup(
186 virtual int dropMulticastGroup(
191 virtual int setMcastTtl(
int ttl);
195 virtual void setMcastDevice(
DtIpv4Addr devAddr);
199 virtual void setFilterPort(
const int& port);
201 virtual void setSendPort(
const int& port);
209 static int enableBroadcast(
int sockfd);
212 static void makeNonBlocking(
int sockfd);
215 static int makeReusable(
int sockfd);
219 static void setRetryOnSend(
unsigned int numRetries,
double waitPeriod);
222 static DtIpv4Addr inetBroadcastOfDevice(
const char *device = NULL);
223 static DtIpv4Addr inetAddrOfDevice(
const char *device = NULL);
224 static DtIpv4Addr netMaskOfDevice(
const char *device = NULL);
228 static void setInetAddr(sockaddr_in &s, u_long addr,
int port);
236 static void netMaskFromReg(
char* tszNetMask);
252 virtual int dataLeftInCurrentBundle();
255 virtual int retrySendTo( caddr_t packet,
size_t size, sockaddr_in& dest );
261 virtual int recvWithStatus(caddr_t* buffptr,
int* status);
266 virtual int recvFromNet(caddr_t* buffptr);
272 virtual int recvWithUnbundling(caddr_t* buffptr);
285 virtual int privateListenToMulticastGroup(
DtIpv4Addr multicastAddr,
292 virtual void findNextPacket();
298 virtual unsigned int getNextPacketSize();
301 virtual unsigned int currentHeaderMatchesFirstInBundle();
307 static ifreq* findIfr(
308 const char* device,
int sock, ifconf* ifc);
311 static DtIpv4Addr netMaskOfIfr(ifreq *ifr,
int sock);
312 static DtIpv4Addr inetAddrOfIfr(ifreq *ifr,
int sock);
313 static DtIpv4Addr inetBroadcastOfIfr(ifreq *ifr,
int sock);
314 static bool capableOfIpBroadcast(ifreq* ifr,
int sock);
372 #ifdef DtUSE_UTILITIES_NAMESPACE
int myFilterPort
Definition: vlNetSocket.h:320
DT_DLL_NETCOMPAT int DtIsMulticastAddr(DtIpv4Addr addr)
Definition: vlNetSocket.h:62
DtU8 myFlags
Definition: vlNetSocket.h:349
DtU32 DtIpv4Addr
Definition: vlUtil.h:330
This file contains the declaration of the DtInetSocket base class.
DtIpv4Addr myExtSockAddr
Definition: vlNetSocket.h:327
DtSocket provides a low level interface for packet I/O with VR-Link applications. ...
Definition: vlSocket.h:110
static double theSendRetryPeriod
Definition: vlNetSocket.h:354
int myUdpPort
Definition: vlNetSocket.h:319
void * myNextPacket
Definition: vlNetSocket.h:325
DtIpv4Addr myDevAddr
Definition: vlNetSocket.h:329
Definition: vlNetSocket.h:61
int firstExId
Definition: vlNetSocket.h:343
#define DtDEFAULT_PORT
Definition: vlSocket.h:49
sockaddr_in * destSockAddr
Definition: vlNetSocket.h:347
char * myPktBuff
Definition: vlNetSocket.h:323
int mySendPort
Definition: vlNetSocket.h:321
virtual void setBundling(int maxSize)
sockaddr_in * sourceSockAddr
Definition: vlNetSocket.h:348
int sizeLeft
Definition: vlNetSocket.h:332
int firstInBundle
Definition: vlNetSocket.h:342
const DtIpv4Addr DtUSE_DEFAULT_IP_ADDR
Definition: vlSocket.h:54
bool myTestingDisHeader
Definition: vlNetSocket.h:339
int myMaxPacketSize
Definition: vlNetSocket.h:338
unsigned char DtU8
An eight bit unsigned integer value.
Definition: vlMachineTypes.h:137
int myPktSizeLength
Definition: vlNetSocket.h:337
DtInitErrorAction
Possible values of DtNetSocket::initErrorAction, which determines what to do if socket initialization...
Definition: vlNetSocket.h:59
DT_DLL_NETCOMPAT DtIpv4Addr DtFirstHostInetAddr()
char * myUnbundleBuff
Definition: vlNetSocket.h:324
int myPktSizeOffset
Definition: vlNetSocket.h:336
This file declares DtSocket as well as several useful constents and helper classes.
Definition: vlNetSocket.h:63
DT_DLL_NETCOMPAT DtIpv4Addr DtInetBroadcastOfDevice(const char *device)
int myUnbundling
Definition: vlNetSocket.h:330
int myUsingExternalSocket
Definition: vlNetSocket.h:326
#define DtReadWrite
Marks the Socket as Read and Writable.
Definition: vlInetSocket.h:37
static DtInitErrorAction initErrorAction
Definition: vlNetSocket.h:244
int boundToDestAddr
Definition: vlNetSocket.h:341
int myPktMinSize
Definition: vlNetSocket.h:335
bool myOkFlag
Definition: vlNetSocket.h:346
static unsigned int theMaxSendRetries
Definition: vlNetSocket.h:353
DT_DLL_NETCOMPAT DtIpv4Addr DtNetMaskOfDevice(const char *device)
#define DT_DLL_NETCOMPAT
Definition: vlMachineTypes.h:111
provides basic Operating Independent Methods useful to a federate
virtual void setBundling(int maxBundleSize, bool enableUnbundling, int minPacketSize, int sizeOffset, int sizeLength, bool testDisHeader)
Set all bundling parameters Disables bundling if max.
DT_DLL_NETCOMPAT DtIpv4Addr DtInetAddrOfDevice(const char *device)
unsigned int mySourcePort
Definition: vlNetSocket.h:322
int firstProtocol
Definition: vlNetSocket.h:344
DtIpv4Addr myDestInetAddr
Definition: vlNetSocket.h:328
This file contains typedefs for machine dependant types.
A DtSocket that implements network sending and receiving function using IP/UDP broadcast, multicast or unicast.
Definition: vlNetSocket.h:72