Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VsnetSocket Class Referenceabstract

#include <vsnet_socketbase.h>

Inheritance diagram for VsnetSocket:
VsnetSocketBase VsnetTCPSocket VsnetUDPSocket

Public Member Functions

 VsnetSocket (int sock, const AddressIP &remote_ip, const char *socktype, SocketSet &set)
 
virtual ~VsnetSocket ()
 
virtual bool isTcp () const =0
 
virtual int optPayloadSize () const =0
 
virtual int queueLen (int pri)=0
 
bool eq (const VsnetSocket &r) const
 
bool lt (const VsnetSocket &r) const
 
bool sameAddress (const VsnetSocket &r) const
 
virtual int sendbuf (Packet *packet, const AddressIP *to, int pcktflags)=0
 
virtual int recvbuf (Packet *p, AddressIP *from)=0
 
virtual void dump (std::ostream &ostr) const =0
 
const AddressIPgetRemoteAddress () const
 
virtual bool setRemoteAddress (const AddressIP &)
 
const AddressIPgetLocalAddress () const
 
bool setLocalAddress (const AddressIP &lip)
 
- Public Member Functions inherited from VsnetSocketBase
 VsnetSocketBase (int fd, const char *socktype, SocketSet &set)
 
virtual ~VsnetSocketBase ()
 
bool valid () const
 
int get_fd () const
 
int close_fd ()
 
const char * get_socktype () const
 
bool set_block ()
 
bool set_nonblock ()
 
bool get_nonblock () const
 
virtual bool isActive ()=0
 
void disconnect (const char *s)
 
virtual bool lower_selected (int datalen=-1)=0
 
virtual bool need_test_writable ()
 
virtual bool write_on_negative ()
 
virtual int get_write_fd () const
 
virtual int lower_sendbuf ()
 
virtual void lower_clean_sendbuf ()
 
virtual bool isReadyToSend (fd_set *)
 
void setSet (SocketSet *set)
 

Protected Attributes

AddressIP _remote_ip
 
AddressIP _local_ip
 
- Protected Attributes inherited from VsnetSocketBase
int _fd
 
SocketSet_set
 

Friends

std::ostream & operator<< (std::ostream &ostr, const VsnetSocket &s)
 

Additional Inherited Members

- Protected Member Functions inherited from VsnetSocketBase
virtual void child_disconnect (const char *s)
 

Detailed Description

Definition at line 107 of file vsnet_socketbase.h.

Constructor & Destructor Documentation

VsnetSocket::VsnetSocket ( int  sock,
const AddressIP remote_ip,
const char *  socktype,
SocketSet set 
)

Definition at line 16 of file vsnet_socketbase.cpp.

References VsnetSocket().

Referenced by VsnetSocket().

16  :
17  VsnetSocketBase( sock, socktype, sets )
18  , _remote_ip( remote_ip )
19 {}
VsnetSocket::~VsnetSocket ( )
virtual

Definition at line 21 of file vsnet_socketbase.cpp.

22 {}

Member Function Documentation

virtual void VsnetSocket::dump ( std::ostream &  ostr) const
pure virtual

Implemented in VsnetTCPSocket, and VsnetUDPSocket.

Referenced by operator<<().

bool VsnetSocket::eq ( const VsnetSocket r) const

Definition at line 31 of file vsnet_socketbase.cpp.

References _remote_ip, VsnetSocketBase::get_fd(), and isTcp().

32 {
33  return ( isTcp() == r.isTcp() ) && ( get_fd() == r.get_fd() ) && (_remote_ip == r._remote_ip);
34 }
const AddressIP& VsnetSocket::getLocalAddress ( ) const
inline

Definition at line 144 of file vsnet_socketbase.h.

References _local_ip.

145  {
146  return _local_ip;
147  }
const AddressIP& VsnetSocket::getRemoteAddress ( ) const
inline

Definition at line 134 of file vsnet_socketbase.h.

References _remote_ip.

135  {
136  return _remote_ip;
137  }
virtual bool VsnetSocket::isTcp ( ) const
pure virtual

Implemented in VsnetTCPSocket, and VsnetUDPSocket.

Referenced by eq(), lt(), and sameAddress().

bool VsnetSocket::lt ( const VsnetSocket r) const

Definition at line 36 of file vsnet_socketbase.cpp.

References _remote_ip, VsnetSocketBase::get_fd(), and isTcp().

37 {
38  if ( !isTcp() && r.isTcp() ) return true;
39  if ( isTcp() == r.isTcp() ) {
40  if ( get_fd() < r.get_fd() ) return true;
41  if ( get_fd() == r.get_fd() )
42  if (_remote_ip < r._remote_ip) return true;
43  }
44  return false;
45 }
virtual int VsnetSocket::optPayloadSize ( ) const
pure virtual

Implemented in VsnetTCPSocket, and VsnetUDPSocket.

virtual int VsnetSocket::queueLen ( int  pri)
pure virtual

Implemented in VsnetTCPSocket, and VsnetUDPSocket.

virtual int VsnetSocket::recvbuf ( Packet p,
AddressIP from 
)
pure virtual

This function copies or moves data into the given PacketMem variable. It is preferred over the other recvbuf function because it may reduce the number of copy operations by at least one.

Implemented in VsnetTCPSocket, and VsnetUDPSocket.

bool VsnetSocket::sameAddress ( const VsnetSocket r) const

Definition at line 47 of file vsnet_socketbase.cpp.

References _remote_ip, and isTcp().

48 {
49  const VsnetSocket *r2 = (const VsnetSocket*) &r;
50  return ( isTcp() == r2->isTcp() ) && (_remote_ip == r2->_remote_ip);
51 }
virtual int VsnetSocket::sendbuf ( Packet packet,
const AddressIP to,
int  pcktflags 
)
pure virtual

Implemented in VsnetTCPSocket, and VsnetUDPSocket.

bool VsnetSocket::setLocalAddress ( const AddressIP lip)
inline

Definition at line 148 of file vsnet_socketbase.h.

References _local_ip.

149  {
150  _local_ip = lip;
151  return true;
152  }
virtual bool VsnetSocket::setRemoteAddress ( const AddressIP )
inlinevirtual

Reimplemented in VsnetUDPSocket.

Definition at line 138 of file vsnet_socketbase.h.

139  {
140  return false;
141  }

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  ostr,
const VsnetSocket s 
)
friend

Member Data Documentation

AddressIP VsnetSocket::_local_ip
protected

Definition at line 157 of file vsnet_socketbase.h.

Referenced by getLocalAddress(), and setLocalAddress().


The documentation for this class was generated from the following files: