Logo Search packages:      
Sourcecode: pwlib version File versions  Download package

PEthSocket Class Reference

#include <ethsock.h>

Inheritance diagram for PEthSocket:

PSocket PChannel PObject

List of all members.

Detailed Description

This class describes a type of socket that will communicate using raw ethernet packets.

Definition at line 110 of file ethsock.h.

Comparison functions

enum  Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
virtual Comparison CompareObjectMemoryDirect (const PObject &obj) const
bool operator!= (const PObject &obj) const
bool operator< (const PObject &obj) const
bool operator<= (const PObject &obj) const
bool operator== (const PObject &obj) const
bool operator> (const PObject &obj) const
bool operator>= (const PObject &obj) const

Error functions

enum  ErrorGroup { LastReadError, LastWriteError, LastGeneralError, NumErrorGroups }
enum  Errors {
  NoError, NotFound, FileExists, DiskFull,
  AccessDenied, DeviceInUse, BadParameter, NoMemory,
  NotOpen, Timeout, Interrupted, BufferTooSmall,
  Miscellaneous, ProtocolFailure, NumNormalisedErrors
Errors GetErrorCode (ErrorGroup group=NumErrorGroups) const
int GetErrorNumber (ErrorGroup group=NumErrorGroups) const
virtual PString GetErrorText (ErrorGroup group=NumErrorGroups) const
static PString GetErrorText (Errors lastError, int osError=0)

Filtering functions

enum  EthTypes {
  TypeAll = 3, TypeIP = 0x800, TypeX25 = 0x805, TypeARP = 0x806,
  TypeAtalk = 0x809B, TypeAARP = 0x80F3, TypeIPX = 0x8137, TypeIPv6 = 0x86DD
 Type codes for ethernet frames. More...
enum  FilterMask {
  FilterDirected = 0x01, FilterMulticast = 0x02, FilterAllMulticast = 0x04, FilterBroadcast = 0x08,
  FilterPromiscuous = 0x10
 Mask filter bits for GetFilter() function. More...
BOOL GetFilter (unsigned &mask, WORD &type)
BOOL SetFilter (unsigned mask, WORD type=TypeAll)

Information functions

enum  MediumTypes {
  MediumLoop, Medium802_3, MediumWan, MediumUnknown,
 Medium types for the open interface. More...
BOOL EnumInterfaces (PINDEX idx, PString &name)
BOOL EnumIpAddress (PINDEX idx, PIPSocket::Address &addr, PIPSocket::Address &netMask)
BOOL GetAddress (Address &addr)
BOOL GetIpAddress (PIPSocket::Address &addr, PIPSocket::Address &netMask)
BOOL GetIpAddress (PIPSocket::Address &addr)
MediumTypes GetMedium ()

Socket establishment functions

enum  Reusability { CanReuseAddress, AddressIsExclusive }
 Flags to reuse of port numbers in Listen() function.
virtual BOOL Accept (PSocket &socket)
virtual BOOL Shutdown (ShutdownValue option)

Miscellaneous functions

enum  ShutdownValue { ShutdownRead = 0, ShutdownWrite = 1, ShutdownReadAndWrite = 2 }
void AbortCommandString ()
BOOL SendCommandString (const PString &command)
BOOL SetBufferSize (PINDEX newSize)

Scattered read/write functions

typedef std::vector< SliceVectorOfSlice
virtual BOOL Read (const VectorOfSlice &slices)
virtual BOOL Write (const VectorOfSlice &slices)

Run Time Type functions

virtual const char * GetClass (unsigned=0) const
virtual BOOL InternalIsDescendant (const char *clsName) const
BOOL IsClass (const char *cls) const
static const char * Class ()

Port/Service database functions

WORD GetPort () const
virtual WORD GetPortByService (const PString &service) const
PString GetService () const
virtual PString GetServiceByPort (WORD port) const
void SetPort (const PString &service)
void SetPort (WORD port)
static PString GetNameByProtocol (WORD proto)
static WORD GetPortByService (const char *protocol, const PString &service)
static WORD GetProtocolByName (const PString &name)
static PString GetServiceByPort (const char *protocol, WORD port)

I/O functions

virtual void PrintOn (ostream &strm) const
virtual void ReadFrom (istream &strm)
ostream & operator<< (ostream &strm, const PObject &obj)
istream & operator>> (istream &strm, PObject &obj)

Public Types

enum  PXBlockType { PXReadBlock, PXWriteBlock, PXAcceptBlock, PXConnectBlock }

Public Member Functions

Miscellaneous functions
virtual PObjectClone () const
Overrides from class PChannel
virtual BOOL Close ()
virtual BOOL Read (void *buf, PINDEX len)
virtual BOOL Write (const void *buf, PINDEX len)
Overrides from class PObject
virtual Comparison Compare (const PObject &obj) const
virtual PINDEX HashFunction () const
Overrides from class PSocket
virtual BOOL Connect (const PString &address)
virtual BOOL Listen (unsigned queueSize=5, WORD port=0, Reusability reuse=AddressIsExclusive)
Information functions
virtual PChannelGetBaseReadChannel () const
virtual PChannelGetBaseWriteChannel () const
int GetHandle () const
virtual PString GetName () const
virtual BOOL IsOpen () const
Reading functions
virtual PINDEX GetLastReadCount () const
PTimeInterval GetReadTimeout () const
virtual void OnReadComplete (void *buf, PINDEX len)
virtual BOOL ReadAsync (void *buf, PINDEX len)
BOOL ReadBlock (void *buf, PINDEX len)
virtual int ReadChar ()
PString ReadString (PINDEX len)
void SetReadTimeout (const PTimeInterval &time)
Writing functions
virtual PINDEX GetLastWriteCount () const
PTimeInterval GetWriteTimeout () const
virtual void OnWriteComplete (const void *buf, PINDEX len)
void SetWriteTimeout (const PTimeInterval &time)
virtual BOOL WriteAsync (const void *buf, PINDEX len)
BOOL WriteChar (int c)
BOOL WriteString (const PString &str)
Socket options functions
BOOL GetOption (int option, void *valuePtr, PINDEX valueSize, int level=SOL_SOCKET)
BOOL GetOption (int option, int &value, int level=SOL_SOCKET)
BOOL SetOption (int option, const void *valuePtr, PINDEX valueSize, int level=SOL_SOCKET)
BOOL SetOption (int option, int value, int level=SOL_SOCKET)
 PEthSocket (PINDEX nReadBuffers=8, PINDEX nWriteBuffers=1, PINDEX size=1514)
 ~PEthSocket ()
 Close the socket.
I/O functions
BOOL ReadPacket (PBYTEArray &buffer, Address &dest, Address &src, WORD &type, PINDEX &len, BYTE *&payload)
BOOL ResetAdaptor ()

Static Public Member Functions

static BOOL ConvertOSError (int libcReturnValue, Errors &lastError, int &osError)
Integer conversion functions
static DWORD Host2Net (DWORD v)
 Convert from host to network byte order.
static WORD Host2Net (WORD v)
 Convert from host to network byte order.
static DWORD Net2Host (DWORD v)
 Convert from network to host byte order.
static WORD Net2Host (WORD v)
 Convert from network to host byte order.
Multiple socket selection functions
static Errors Select (SelectList &read, SelectList &write, SelectList &except, const PTimeInterval &timeout)
static Errors Select (SelectList &read, SelectList &write, SelectList &except)
static Errors Select (SelectList &read, SelectList &write, const PTimeInterval &timeout)
static Errors Select (SelectList &read, SelectList &write)
static Errors Select (SelectList &read, const PTimeInterval &timeout)
static Errors Select (SelectList &read)
static int Select (PSocket &sock1, PSocket &sock2, const PTimeInterval &timeout)
static int Select (PSocket &sock1, PSocket &sock2)

Protected Member Functions

virtual BOOL ConvertOSError (int libcReturnValue, ErrorGroup group=LastGeneralError)
virtual const char * GetProtocolName () const
virtual BOOL OpenSocket ()
BOOL os_accept (PSocket &listener, struct sockaddr *addr, PINDEX *size)
int os_close ()
BOOL os_connect (struct sockaddr *sin, PINDEX size)
BOOL os_recvfrom (void *buf, PINDEX len, int flags, struct sockaddr *from, PINDEX *fromlen)
BOOL os_sendto (const void *buf, PINDEX len, int flags, struct sockaddr *to, PINDEX tolen)
int os_socket (int af, int type, int proto)
int PXClose ()
BOOL PXSetIOBlock (PXBlockType type, const PTimeInterval &timeout)
int ReadCharWithTimeout (PTimeInterval &timeout)
BOOL ReceiveCommandString (int nextChar, const PString &reply, PINDEX &pos, PINDEX start)
BOOL SetErrorValues (Errors errorCode, int osError, ErrorGroup group=LastGeneralError)

Protected Attributes

PString channelName
BOOL fakeMacHeader
unsigned filterMask
WORD filterType
BOOL ipppInterface
Errors lastErrorCode [NumErrorGroups+1]
 The platform independant error code.
int lastErrorNumber [NumErrorGroups+1]
 The operating system error number (eg as returned by errno).
PINDEX lastReadCount
 Number of byte last read by the Read() function.
PINDEX lastWriteCount
 Number of byte last written by the Write() function.
Address macAddress
MediumTypes medium
int os_handle
 The operating system file handle return by standard open() function.
WORD port
 Port to be used by the socket when opening the channel.
PXBlockType px_lastBlockType
PMutex px_selectMutex
PMutex px_threadMutex
PMutex px_writeMutex
PTimeInterval readTimeout
 Timeout for read operations.
PTimeInterval writeTimeout
 Timeout for write operations.

Private Member Functions

 PCLASSINFO (PEthSocket, PSocket)


union  Address
struct  Frame

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

Generated by  Doxygen 1.6.0   Back to index