Yate
Public Member Functions | Friends
SocketFilter Class Reference

A filter for received socket data. More...

#include <yateclass.h>

Inheritance diagram for SocketFilter:
GenObject

List of all members.

Public Member Functions

 SocketFilter ()
virtual ~SocketFilter ()
virtual void * getObject (const String &name) const
virtual void timerTick (const Time &when)
virtual bool received (void *buffer, int length, int flags, const struct sockaddr *addr, socklen_t adrlen)=0
Socketsocket () const
bool valid () const

Friends

class Socket

Detailed Description

A filter for received socket data.

Abstract interface for an object that filters socket received data packets


Constructor & Destructor Documentation

Constructor

virtual ~SocketFilter ( ) [virtual]

Destructor, unregisters from socket


Member Function Documentation

virtual void* getObject ( const String name) const [virtual]

Get a pointer to a derived class given that class name

Parameters:
nameName of the class we are asking for
Returns:
Pointer to the requested class or NULL if this object doesn't implement it

Reimplemented from GenObject.

virtual bool received ( void *  buffer,
int  length,
int  flags,
const struct sockaddr *  addr,
socklen_t  adrlen 
) [pure virtual]

Notify this filter about a received block of data

Parameters:
bufferBuffer for received data
lengthLength of the data in buffer
flagsOperating system specific bit flags of the operation
addrAddress of the incoming data, may be NULL
adrlenLength of the valid data in address structure
Returns:
True if this filter claimed the data
Socket* socket ( ) const [inline]

Get the socket to which the filter is currently attached

Returns:
Pointer to the socket of this filter
virtual void timerTick ( const Time when) [virtual]

Run whatever actions required on idle thread runs

Parameters:
whenTime when the idle run started
bool valid ( ) const

Check if the socket of this filter is valid

Returns:
True if the filter has a valid socket

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