SocketSource Class Reference

socket-based implementation of NetworkSource More...

#include <socketft.h>

Inheritance diagram for SocketSource:

NetworkSource Socket NonblockingSource AutoSignaling< Source >

List of all members.

Public Member Functions

 SocketSource (socket_t s=INVALID_SOCKET, bool pumpAll=false, BufferedTransformation *attachment=NULL)
unsigned int GetMaxWaitObjectCount () const
void GetWaitObjects (WaitObjectContainer &container, CallStack const &callStack)
bool SourceExhausted () const
void SetAutoSignalPropagation (int propagation)
int GetAutoSignalPropagation () const
lword GetMaxBytesPerSecond () const
void SetMaxBytesPerSecond (lword v)
lword ComputeCurrentTransceiveLimit ()
double TimeToNextTransceive ()
void NoteTransceive (lword size)
bool GetOwnership () const
void SetOwnership (bool own)
 operator socket_t ()
socket_t GetSocket () const
void AttachSocket (socket_t s, bool own=false)
socket_t DetachSocket ()
void CloseSocket ()
void Create (int nType=SOCK_STREAM)
void Bind (unsigned int port, const char *addr=NULL)
void Bind (const sockaddr *psa, socklen_t saLen)
void Listen (int backlog=5)
bool Connect (const char *addr, unsigned int port)
bool Connect (const sockaddr *psa, socklen_t saLen)
bool Accept (Socket &s, sockaddr *psa=NULL, socklen_t *psaLen=NULL)
void GetSockName (sockaddr *psa, socklen_t *psaLen)
void GetPeerName (sockaddr *psa, socklen_t *psaLen)
unsigned int Send (const byte *buf, size_t bufLen, int flags=0)
unsigned int Receive (byte *buf, size_t bufLen, int flags=0)
void ShutDown (int how=SD_SEND)
void IOCtl (long cmd, unsigned long *argp)
bool SendReady (const timeval *timeout)
bool ReceiveReady (const timeval *timeout)
virtual void HandleError (const char *operation) const
void CheckAndHandleError_int (const char *operation, int result) const
void CheckAndHandleError (const char *operation, socket_t result) const
void CheckAndHandleError (const char *operation, BOOL result) const
void CheckAndHandleError (const char *operation, bool result) const
NONBLOCKING SOURCE
size_t GeneralPump2 (lword &byteCount, bool blockingOutput=true, unsigned long maxTime=INFINITE_TIME, bool checkDelimiter=false, byte delimiter='\n')
 pump up to maxSize bytes using at most maxTime milliseconds
lword GeneralPump (lword maxSize=LWORD_MAX, unsigned long maxTime=INFINITE_TIME, bool checkDelimiter=false, byte delimiter='\n')
lword TimedPump (unsigned long maxTime)
lword PumpLine (byte delimiter='\n', lword maxSize=1024)
size_t Pump2 (lword &byteCount, bool blocking=true)
size_t PumpMessages2 (unsigned int &messageCount, bool blocking=true)

Static Public Member Functions

static unsigned int PortNameToNumber (const char *name, const char *protocol="tcp")
 look up the port number given its name, returns 0 if not found
static void StartSockets ()
 start Windows Sockets 2
static void ShutdownSockets ()
 calls WSACleanup for Windows Sockets
static int GetLastError ()
 returns errno or WSAGetLastError
static void SetLastError (int errorCode)
 sets errno or calls WSASetLastError

Protected Member Functions

size_t DoPump (lword &byteCount, bool blockingOutput, unsigned long maxTime, bool checkDelimiter, byte delimiter)
const NetworkReceiverGetReceiver () const
bool BlockedBySpeedLimit () const
virtual void SocketChanged ()

Protected Attributes

socket_t m_s
bool m_own


Detailed Description

socket-based implementation of NetworkSource

Definition at line 191 of file socketft.h.


Member Function Documentation

size_t NonblockingSource::GeneralPump2 ( lword &  byteCount,
bool  blockingOutput = true,
unsigned long  maxTime = INFINITE_TIME,
bool  checkDelimiter = false,
byte  delimiter = '\n' 
) [inherited]

pump up to maxSize bytes using at most maxTime milliseconds

If checkDelimiter is true, pump up to delimiter, which itself is not extracted or pumped.

Definition at line 76 of file network.cpp.

References TimerBase::ElapsedTime(), INFINITE_TIME, TimerBase::StartTimer(), and WaitObjectContainer::Wait().


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

Generated on Mon Oct 27 02:45:55 2008 for Crypto++ by  doxygen 1.5.7.1