

Public Member Functions | |
| virtual void | OnPreOutgoingConnect (JetByteTools::Win32::IIndexedOpaqueUserData &userData, const IAddress &address, const void *pUserData)=0 throw () |
| Called just before an outgoing connection is established, i.e. a 'client' connection. The userData is the user data associated with the socket that will attempt the connection. The address is the address that the socket will attempt to connect to and the pointer to user data is whatever was passed in as user data to the Connect(), ConnectNoThrow() or AsyncConnect() call. This is usually used to slot the pointer to user data into the sockets user data store before the connection is attempted; thus passing data from the connect call site to the connection establishment or failure callback and beyond. | |
| virtual void | OnConnectionEstablished (IStreamSocket &socket, const IAddress &address)=0 |
| Called when a connection is established. The address is the address that the socket is connected to. This is where you are expected to issue your first Read() or Write() call on a connection, if you don't and don't increase the reference count of the socket in some other way then the socket will close automatically. | |
| virtual void | OnOutgoingConnectionFailed (IStreamSocket &socket, const IAddress &address, const DWORD lastError)=0 |
| Called when an outgoing async or sync no throw connection fails. The address is the address that we were attempting to connect to. Note that sync connections attempts that can throw exceptions do not result in this callback being called when they fail to connect. | |
| virtual void | OnSocketReleased (JetByteTools::Win32::IIndexedOpaqueUserData &userData)=0 |
| Called when a connection is released back to the allocator. This is guarenteed to be the last event that happens on an active socket. The socket is dead at this point and you're passed the userData that was related to it so that you can perform some final cleanup if required. | |
| virtual void | OnReadCompleted (IStreamSocket &socket, JetByteTools::IO::IBuffer &buffer)=0 |
| Called when an asynchronous read completes. This is where you are given the data that has been received on the connection and where your business logic would usually be expected to start dealing with the data. You are generally expected to issue another Read() before this call completes, if you don't and don't increase the reference count of the socket in some other way then the socket will close automatically. | |
| virtual void | OnReadCompletionError (IStreamSocket &socket, JetByteTools::IO::IBuffer &buffer, const DWORD lastError)=0 |
| Called when an asynchronous read completes with an error. | |
| virtual void | OnWriteCompleted (IStreamSocket &socket, JetByteTools::IO::IBuffer &buffer)=0 |
| Called when an asynchronous write completes. There's not a great deal that needs to be done here. | |
| virtual void | OnWriteCompletionError (IStreamSocket &socket, JetByteTools::IO::IBuffer &buffer, const DWORD lastError)=0 |
| Called when an asynchronous write completes with an error. In certain low resource situations you may find that the write can complete and not all of the data has been sent, but there's probably not a great deal that you can do to fix things... | |
| virtual void | OnMaximumConnections ()=0 |
| Called when the maximum allowed number of connections is reached and no more new connections will be accepted by the server. See ILimitConnections for details on limiting connections. | |
| 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 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/O operation or something...). 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, const DWORD lastError)=0 |
| Called when the connection is reset. | |
| virtual void | OnConnectionClosed (IStreamSocket &socket)=0 |
| Called when the connection is closed. | |
| virtual void | OnConnectionError (const ConnectionErrorSource source, IStreamSocket &socket, const JetByteTools::IO::IBuffer &buffer, const 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). | |
Protected Member Functions | |
| ~IStreamSocketConnectionManagerCallback () | |
| We never delete instances of this interface; you must manage the lifetime of the class that implements it. | |
| ~IStreamSocketConnectionManagerCallback | ( | ) | [inline, protected] |
We never delete instances of this interface; you must manage the lifetime of the class that implements it.
Reimplemented in IStreamSocketConnectionManagerCallback.
| virtual void OnConnectionEstablished | ( | IStreamSocket & | socket, | |
| const IAddress & | address | |||
| ) | [pure virtual] |
Called when a connection is established. The address is the address that the socket is connected to. This is where you are expected to issue your first Read() or Write() call on a connection, if you don't and don't increase the reference count of the socket in some other way then the socket will close automatically.
Implemented in CStreamSocketConnectionManagerCallback, CStreamSocketServerCallback, CStreamSocketServerExCallback, CStreamSocketConnectionManagerCallback, and CStreamSocketServerCallback.
| virtual void OnOutgoingConnectionFailed | ( | IStreamSocket & | socket, | |
| const IAddress & | address, | |||
| const DWORD | lastError | |||
| ) | [pure virtual] |
Called when an outgoing async or sync no throw connection fails. The address is the address that we were attempting to connect to. Note that sync connections attempts that can throw exceptions do not result in this callback being called when they fail to connect.
Implemented in CStreamSocketConnectionManagerCallback, CStreamSocketServerCallback, CStreamSocketServerExCallback, CStreamSocketConnectionManagerCallback, and CStreamSocketServerCallback.
| virtual void OnSocketReleased | ( | JetByteTools::Win32::IIndexedOpaqueUserData & | userData | ) | [pure virtual] |
Called when a connection is released back to the allocator. This is guarenteed to be the last event that happens on an active socket. The socket is dead at this point and you're passed the userData that was related to it so that you can perform some final cleanup if required.
Implemented in CStreamSocketConnectionManagerCallback, CStreamSocketServerCallback, CStreamSocketServerExCallback, CStreamSocketConnectionManagerCallback, and CStreamSocketServerCallback.
| virtual void OnReadCompleted | ( | IStreamSocket & | socket, | |
| JetByteTools::IO::IBuffer & | buffer | |||
| ) | [pure virtual] |
Called when an asynchronous read completes. This is where you are given the data that has been received on the connection and where your business logic would usually be expected to start dealing with the data. You are generally expected to issue another Read() before this call completes, if you don't and don't increase the reference count of the socket in some other way then the socket will close automatically.
Implemented in CStreamSocketConnectionManagerCallback, CStreamSocketServerCallback, CStreamSocketServerExCallback, CStreamSocketConnectionManagerCallback, and CStreamSocketServerCallback.
| virtual void OnReadCompletionError | ( | IStreamSocket & | socket, | |
| JetByteTools::IO::IBuffer & | buffer, | |||
| const DWORD | lastError | |||
| ) | [pure virtual] |
Called when an asynchronous read completes with an error.
Implemented in CStreamSocketConnectionManagerCallback, CStreamSocketServerCallback, CStreamSocketServerExCallback, CStreamSocketConnectionManagerCallback, and CStreamSocketServerCallback.
| virtual void OnWriteCompleted | ( | IStreamSocket & | socket, | |
| JetByteTools::IO::IBuffer & | buffer | |||
| ) | [pure virtual] |
Called when an asynchronous write completes. There's not a great deal that needs to be done here.
Implemented in CStreamSocketConnectionManagerCallback, CStreamSocketServerCallback, CStreamSocketServerExCallback, CStreamSocketConnectionManagerCallback, and CStreamSocketServerCallback.
| virtual void OnWriteCompletionError | ( | IStreamSocket & | socket, | |
| JetByteTools::IO::IBuffer & | buffer, | |||
| const DWORD | lastError | |||
| ) | [pure virtual] |
Called when an asynchronous write completes with an error. In certain low resource situations you may find that the write can complete and not all of the data has been sent, but there's probably not a great deal that you can do to fix things...
Implemented in CStreamSocketConnectionManagerCallback, CStreamSocketServerCallback, CStreamSocketServerExCallback, CStreamSocketConnectionManagerCallback, and CStreamSocketServerCallback.
| virtual void OnMaximumConnections | ( | ) | [pure virtual] |
Called when the maximum allowed number of connections is reached and no more new connections will be accepted by the server. See ILimitConnections for details on limiting connections.
Implemented in CStreamSocketConnectionManagerCallback, CStreamSocketServerCallback, CStreamSocketServerExCallback, CStreamSocketConnectionManagerCallback, and CStreamSocketServerCallback.
| virtual void OnError | ( | IStreamSocket & | socket, | |
| const JetByteTools::Win32::_tstring & | message | |||
| ) | [pure virtual, inherited] |
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 CStreamSocketConnectionManagerCallback, CStreamSocketServerCallback, CStreamSocketServerExCallback, CStreamSocketConnectionManagerCallback, and CStreamSocketServerCallback.
| virtual void 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/O operation or something...). Not a lot you can do except log the error message... Possibly shouldn't be exposed to client code?
Implemented in CDatagramSocketConnectionManagerCallback, CDatagramSocketServerCallback, CStreamSocketConnectionManagerCallback, CStreamSocketServerCallback, CStreamSocketServerExCallback, CStreamSocketConnectionManagerCallback, and CStreamSocketServerCallback.
| virtual bool OnConnectionClosing | ( | IStreamSocket & | socket | ) | [pure virtual, inherited] |
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 CStreamSocketConnectionManagerCallback, CStreamSocketServerCallback, CStreamSocketServerExCallback, CStreamSocketConnectionManagerCallback, and CStreamSocketServerCallback.
| virtual void OnConnectionClientClose | ( | IStreamSocket & | socket | ) | [pure virtual, inherited] |
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 CStreamSocketConnectionManagerCallback, CStreamSocketServerCallback, CStreamSocketServerExCallback, CStreamSocketConnectionManagerCallback, and CStreamSocketServerCallback.
| virtual void OnConnectionReset | ( | IStreamSocket & | socket, | |
| const DWORD | lastError | |||
| ) | [pure virtual, inherited] |
Called when the connection is reset.
Implemented in CStreamSocketConnectionManagerCallback, CStreamSocketServerCallback, CStreamSocketServerExCallback, CStreamSocketConnectionManagerCallback, and CStreamSocketServerCallback.
| virtual void OnConnectionClosed | ( | IStreamSocket & | socket | ) | [pure virtual, inherited] |
Called when the connection is closed.
Implemented in CStreamSocketConnectionManagerCallback, CStreamSocketServerCallback, CStreamSocketServerExCallback, CStreamSocketConnectionManagerCallback, and CStreamSocketServerCallback.
| virtual void OnConnectionError | ( | const ConnectionErrorSource | source, | |
| IStreamSocket & | socket, | |||
| const JetByteTools::IO::IBuffer & | buffer, | |||
| const DWORD | lastError | |||
| ) | [pure virtual, inherited] |
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 CStreamSocketConnectionManagerCallback, CStreamSocketServerCallback, CStreamSocketServerExCallback, CStreamSocketConnectionManagerCallback, and CStreamSocketServerCallback.
1.5.3