![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1997 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: vlGroupSocket.h,v $ $Revision: 1.2.6.1 $ $State: Exp $ 00007 *********************************************************************/ 00008 #ifndef vlGroupSocket_H_ 00009 #define vlGroupSocket_H_ 00010 00014 00015 #include "vlNetSocket.h" 00016 00017 #ifdef DtUSE_UTILITIES_NAMESPACE 00018 namespace DtUSE_UTILITIES_NAMESPACE 00019 { 00020 #endif 00021 00022 00025 class DT_DLL_NETCOMPAT DtGroupSocket : public DtNetSocket 00026 { 00027 public: 00028 00031 DtGroupSocket(int port = DtDEFAULT_PORT, DtU8 flags = DtReadWrite, 00032 DtIpv4Addr devAddr = 0); 00033 00036 DtGroupSocket(int port, DtIpv4Addr addr, DtU8 flags, 00037 DtIpv4Addr devAddr = 0); 00038 00040 virtual ~DtGroupSocket(); 00041 00043 virtual void removeAllRemoteSites(); 00044 00046 virtual int DtSend(caddr_t pkt, size_t size, DtIpv4Addr addr); 00047 00049 virtual void addRemoteSite(DtIpv4Addr addr); 00050 virtual void removeRemoteSite(DtIpv4Addr addr); 00051 00053 virtual int sendToAllRemoteSites( 00054 caddr_t pkt, size_t size, DtIpv4Addr dwSkipAddr = 0); 00055 00057 virtual const DtList* remoteSitesList() const; 00058 00059 protected: 00060 00061 DtListItem* findItem(DtIpv4Addr addr) const; 00062 00064 DtList myRemoteSites; 00065 00066 protected: 00067 00069 DtGroupSocket(const DtGroupSocket&); 00070 00072 DtGroupSocket& operator=(const DtGroupSocket &); 00073 00074 }; 00075 00076 inline const DtList* DtGroupSocket::remoteSitesList() const 00077 { 00078 return &myRemoteSites; 00079 } 00080 00081 #ifdef DtUSE_UTILITIES_NAMESPACE 00082 } 00083 #endif 00084 00085 #endif