JetByteTools::Socket::IStreamSocketCallback Class Reference
[SocketsStream SocketsCallback eventsInterfacesProtected non-virtual destructors on abstract base classes]

Inherits JetByteTools::Socket::ISocketCallback.

Inherited by JetByteTools::Socket::IStreamSocketConnectionManagerCallback.

Inheritance diagram for JetByteTools::Socket::IStreamSocketCallback:

Inheritance graph
[legend]
Collaboration diagram for JetByteTools::Socket::IStreamSocketCallback:

Collaboration graph
[legend]
List of all members.

Detailed Description

The connection manager and socket server callback interfaces are composed from more specific interfaces using inheritance. This is purely to allow the framework to work in terms of the narrowest interface internally and does not affect the user of the code. Effectively the first interface that the user would wish to implement is at the IXXXConnectionManagerCallback level and above.


Public Member Functions

virtual void OnError (IStreamSocket &socket, const JetByteTools::Win32::_tstring &message)=0
 Called when there is an error which is related to a particular connection (such as a failure to close a socket, or a failure to call shutdown, etc). Not a lot you can do except log the error message... Possibly shouldn't be exposed to client code?
virtual bool OnConnectionClosing (IStreamSocket &socket)=0
 Called when a connection is closing because the last outstanding reference has been released on a connection that is open. If you wish to call Close() for the connection yourself then do so and return true, else return false and AbortiveClose() will be called. Note that calling Close() from an I/O thread will block the thread for a period of time, you may prefer to consider marshalling the socket to one of your own threads and perform the lingering close from there...
virtual void OnConnectionClientClose (IStreamSocket &socket)=0
 Called when the 'read side' of the connection is closed by the remote end. The remote end of the connection can no longer send data to you as it has issued a shutdown() call and shut down at least the write side of its socket. This means that you can no longer read from the connection but you may still be able to write to the connection.
virtual void OnConnectionReset (IStreamSocket &socket, DWORD lastError)=0
 Called when the connection is reset.
virtual void OnConnectionClosed (IStreamSocket &socket)=0
 Called when the connection is closed.
virtual void OnConnectionError (ConnectionErrorSource source, IStreamSocket &socket, JetByteTools::IO::IBuffer &buffer, DWORD lastError)=0
 Called when there is an error which is related to a particular connection (such as a failure issue a read or write call on the socket, etc).
virtual void OnError (const JetByteTools::Win32::_tstring &message)=0
 Called when there is an error which is not related to a particular connection (such as an exception thrown whilst handling an I operation or something...). Not a lot you can do except log the error message... Possibly shouldn't be exposed to client code?

Protected Member Functions

 ~IStreamSocketCallback ()
 We never delete instances of this interface; you must manage the lifetime of the class that implements it.


Constructor & Destructor Documentation

JetByteTools::Socket::IStreamSocketCallback::~IStreamSocketCallback (  )  [inline, protected]

We never delete instances of this interface; you must manage the lifetime of the class that implements it.


Member Function Documentation

virtual void JetByteTools::Socket::IStreamSocketCallback::OnError ( IStreamSocket socket,
const JetByteTools::Win32::_tstring message 
) [pure virtual]

Called when there is an error which is related to a particular connection (such as a failure to close a socket, or a failure to call shutdown, etc). Not a lot you can do except log the error message... Possibly shouldn't be exposed to client code?

Implemented in JetByteTools::Socket::CStreamSocketConnectionManagerCallback, JetByteTools::Socket::CStreamSocketServerCallback, and JetByteTools::Socket::CStreamSocketServerExCallback.

virtual bool JetByteTools::Socket::IStreamSocketCallback::OnConnectionClosing ( IStreamSocket socket  )  [pure virtual]

Called when a connection is closing because the last outstanding reference has been released on a connection that is open. If you wish to call Close() for the connection yourself then do so and return true, else return false and AbortiveClose() will be called. Note that calling Close() from an I/O thread will block the thread for a period of time, you may prefer to consider marshalling the socket to one of your own threads and perform the lingering close from there...

Implemented in JetByteTools::Socket::CStreamSocketConnectionManagerCallback, JetByteTools::Socket::CStreamSocketServerCallback, and JetByteTools::Socket::CStreamSocketServerExCallback.

virtual void JetByteTools::Socket::IStreamSocketCallback::OnConnectionClientClose ( IStreamSocket socket  )  [pure virtual]

Called when the 'read side' of the connection is closed by the remote end. The remote end of the connection can no longer send data to you as it has issued a shutdown() call and shut down at least the write side of its socket. This means that you can no longer read from the connection but you may still be able to write to the connection.

Implemented in JetByteTools::Socket::CStreamSocketConnectionManagerCallback, JetByteTools::Socket::CStreamSocketServerCallback, and JetByteTools::Socket::CStreamSocketServerExCallback.

virtual void JetByteTools::Socket::IStreamSocketCallback::OnConnectionReset ( IStreamSocket socket,
DWORD  lastError 
) [pure virtual]

Called when the connection is reset.

Implemented in JetByteTools::Socket::CStreamSocketConnectionManagerCallback, JetByteTools::Socket::CStreamSocketServerCallback, and JetByteTools::Socket::CStreamSocketServerExCallback.

virtual void JetByteTools::Socket::IStreamSocketCallback::OnConnectionClosed ( IStreamSocket socket  )  [pure virtual]

Called when the connection is closed.

Implemented in JetByteTools::Socket::CStreamSocketConnectionManagerCallback, JetByteTools::Socket::CStreamSocketServerCallback, and JetByteTools::Socket::CStreamSocketServerExCallback.

virtual void JetByteTools::Socket::IStreamSocketCallback::OnConnectionError ( ConnectionErrorSource  source,
IStreamSocket socket,
JetByteTools::IO::IBuffer buffer,
DWORD  lastError 
) [pure virtual]

Called when there is an error which is related to a particular connection (such as a failure issue a read or write call on the socket, etc).

Implemented in JetByteTools::Socket::CStreamSocketConnectionManagerCallback, JetByteTools::Socket::CStreamSocketServerCallback, and JetByteTools::Socket::CStreamSocketServerExCallback.

virtual void JetByteTools::Socket::ISocketCallback::OnError ( const JetByteTools::Win32::_tstring message  )  [pure virtual, inherited]

Called when there is an error which is not related to a particular connection (such as an exception thrown whilst handling an I operation or something...). Not a lot you can do except log the error message... Possibly shouldn't be exposed to client code?

Implemented in JetByteTools::Socket::CDatagramSocketConnectionManagerCallback, JetByteTools::Socket::CDatagramSocketServerCallback, JetByteTools::Socket::CStreamSocketConnectionManagerCallback, JetByteTools::Socket::CStreamSocketServerCallback, and JetByteTools::Socket::CStreamSocketServerExCallback.


Generated on Tue May 8 17:48:03 2007 for JetByte Socket Tools by  doxygen 1.5.2