Home
TURN module (rfc5766)

ClientObserver

Abstract observer interface for TURN client events.

ClientObserver

#include <icy/turn/client/client.h>
struct ClientObserver

Defined in src/turn/include/icy/turn/client/client.h:69

Subclassed by: TCPClientObserver

Abstract observer interface for TURN client events. Callers subclass this to receive allocation lifecycle and data relay callbacks.

List of all members

NameKindOwner
onClientStateChangefunctionDeclared here
onRelayDataReceivedfunctionDeclared here
onAllocationFailedfunctionDeclared here
onAllocationDeletedfunctionDeclared here
onAllocationPermissionsCreatedfunctionDeclared here
onTransactionResponsefunctionDeclared here
onTimerfunctionDeclared here

Public Methods

ReturnNameDescription
voidonClientStateChange virtualCalled whenever the client's state machine transitions to a new state.
voidonRelayDataReceived virtualCalled when relayed data is received from a peer via a Data Indication.
voidonAllocationFailed virtual inlineCalled when the server rejects an Allocate request with an error.
voidonAllocationDeleted virtual inlineCalled when the server confirms deletion of the allocation.
voidonAllocationPermissionsCreated virtual inlineCalled after a CreatePermission request succeeds.
voidonTransactionResponse virtual inlineAll received transaction responses will be routed here after local processing so the observer can easily implement extra functionality.
voidonTimer virtual inlineFires after the client's internal timer callback. Handy for performing extra async cleanup tasks.

onClientStateChange

virtual

virtual void onClientStateChange(Client & client, ClientState & state, const ClientState & oldState)

Defined in src/turn/include/icy/turn/client/client.h:75

Called whenever the client's state machine transitions to a new state.

Parameters

  • client The client that changed state.

  • state The new state.

  • oldState The previous state.


onRelayDataReceived

virtual

virtual void onRelayDataReceived(Client & client, const char * data, size_t size, const net::Address & peerAddress)

Defined in src/turn/include/icy/turn/client/client.h:82

Called when relayed data is received from a peer via a Data Indication.

Parameters

  • client The owning client.

  • data Pointer to the received payload bytes.

  • size Number of bytes in data.

  • peerAddress Source address of the remote peer.


onAllocationFailed

virtual inline

virtual inline void onAllocationFailed(Client & client, int errorCode, const std::string & reason)

Defined in src/turn/include/icy/turn/client/client.h:88

Called when the server rejects an Allocate request with an error.

Parameters

  • client The owning client.

  • errorCode STUN error code (e.g. 401, 438).

  • reason Human-readable error reason string.


onAllocationDeleted

virtual inline

virtual inline void onAllocationDeleted(Client & client, const stun::Transaction & transaction)

Defined in src/turn/include/icy/turn/client/client.h:93

Called when the server confirms deletion of the allocation.

Parameters

  • client The owning client.

  • transaction The completed Refresh transaction (lifetime == 0).


onAllocationPermissionsCreated

virtual inline

virtual inline void onAllocationPermissionsCreated(Client & client, const PermissionList & permissions)

Defined in src/turn/include/icy/turn/client/client.h:98

Called after a CreatePermission request succeeds.

Parameters

  • client The owning client.

  • permissions The full list of active permissions after this update.


onTransactionResponse

virtual inline

virtual inline void onTransactionResponse(Client & client, const stun::Transaction & transaction)

Defined in src/turn/include/icy/turn/client/client.h:104

All received transaction responses will be routed here after local processing so the observer can easily implement extra functionality.

Parameters

  • client The owning client.

  • transaction The completed transaction (request + response accessible).


onTimer

virtual inline

virtual inline void onTimer(Client & client)

Defined in src/turn/include/icy/turn/client/client.h:109

Fires after the client's internal timer callback. Handy for performing extra async cleanup tasks.

Parameters

  • client The owning client.