Network stream server functions. (TCP). More...
#include "nets/socket.h"Typedefs | |
| typedef struct StreamServer_T | StreamServer_T |
| typedef StreamServer_T * | StreamServer |
| typedef struct StreamSession_T | StreamSession_T |
| typedef StreamSession_T * | StreamSession |
| typedef void *(* | OnStreamSessionCreate) (StreamServer streamServer, StreamSession streamSession) |
| Stream session create function. (TCP). | |
| typedef void(* | OnStreamSessionDestroy) (StreamServer streamServer, StreamSession streamSession, int reason) |
| Stream session destroy function. (TCP). | |
| typedef int(* | OnStreamSessionReceive) (StreamServer streamServer, StreamSession streamSession, const uint8_t *receiveBuffer, size_t byteCount) |
| Stream session data receive function. (TCP). | |
| typedef void(* | OnStreamServerDatagram) (StreamServer streamServer, SocketAddress remoteAddress, const uint8_t *receiveBuffer, size_t byteCount) |
| Stream server datagram receive function. (UDP). | |
Functions | |
| NetsResult | createStreamServer (SocketFamily socketFamily, const char *service, size_t sessionBufferSize, size_t connectionQueueSize, size_t receiveBufferSize, double timeoutTime, OnStreamSessionCreate onCreate, OnStreamSessionDestroy onDestroy, OnStreamSessionReceive onReceive, OnStreamServerDatagram onDatagram, void *handle, SslContext sslContext, StreamServer *streamServer) |
| Creates a new stream server instance. (TCP). | |
| void | destroyStreamServer (StreamServer streamServer) |
| Destroys stream server instance. (TCP). | |
| size_t | getStreamServerSessionBufferSize (StreamServer streamServer) |
| Returns stream server session buffer size. | |
| size_t | getStreamServerReceiveBufferSize (StreamServer streamServer) |
| Returns stream server receive buffer size in bytes. | |
| OnStreamSessionCreate | getStreamServerOnCreate (StreamServer streamServer) |
| Returns stream server session create function. | |
| OnStreamSessionDestroy | getStreamServerOnDestroy (StreamServer streamServer) |
| Returns stream server session destroy function. | |
| OnStreamSessionReceive | getStreamServerOnReceive (StreamServer streamServer) |
| Returns stream server session data receive function. | |
| OnStreamServerDatagram | getStreamServerOnDatagram (StreamServer streamServer) |
| Returns stream server datagram receive function. | |
| double | getStreamServerTimeoutTime (StreamServer streamServer) |
| Returns stream server session timeout time. (in seconds). | |
| void * | getStreamServerHandle (StreamServer streamServer) |
| Returns stream server handle. | |
| uint8_t * | getStreamServerReceiveBuffer (StreamServer streamServer) |
| Returns stream server receive data buffer. | |
| Socket | getStreamServerSocket (StreamServer streamServer) |
| Returns stream server socket instance. | |
| Socket | getStreamServerDatagramSocket (StreamServer streamServer) |
| Returns stream server datagram socket instance. | |
| bool | isStreamServerRunning (StreamServer streamServer) |
| Returns true if stream server receive thread is running. (MT-Safe). | |
| bool | isStreamServerSecure (StreamServer streamServer) |
| Returns true if stream server use encrypted connection. | |
| void | lockStreamServerSessions (StreamServer streamServer) |
| Locks stream server sessions access. (MT-Safe). | |
| void | unlockStreamServerSessions (StreamServer streamServer) |
| Unlocks stream server sessions access. (MT-Safe). | |
| StreamSession * | getStreamServerSessions (StreamServer streamServer) |
| Returns stream server session buffer. | |
| size_t | getStreamServerSessionCount (StreamServer streamServer) |
| Returns stream server session buffer. | |
| Socket | getStreamSessionSocket (StreamSession streamSession) |
| Returns stream session socket instance. | |
| SocketAddress | getStreamSessionRemoteAddress (StreamSession streamSession) |
| Returns stream session remote IP address instance. | |
| void * | getStreamSessionHandle (StreamSession streamSession) |
| Returns stream session handle. | |
| int | updateStreamSession (StreamServer streamServer, StreamSession streamSession, double currentTime) |
| Updates specified stream server session state. | |
| void | destroyStreamSession (StreamServer streamServer, StreamSession streamSession, int reason) |
| Destroyes specified stream server session. | |
| void | flushStreamSessions (StreamServer streamServer) |
| Flushes destroyed stream server sessions. | |
| void | aliveStreamSession (StreamSession streamSession) |
| Resets specified stream server session timeout time. | |
| NetsResult | streamSessionSend (StreamSession streamSession, const void *data, size_t byteCount) |
| Sends stream data to the specified session. (TCP). | |
| NetsResult | streamServerSendDatagram (StreamServer streamServer, SocketAddress remoteAddress, const void *data, size_t byteCount) |
| Sends datagram to the specified socket address. (UDP). | |
| NetsResult | shutdownStreamSession (StreamSession streamSession, SocketShutdown shutdown) |
| Shutdowns part of the full-duplex socket connection. | |
Network stream server functions. (TCP).
| typedef struct StreamServer_T StreamServer_T |
Stream server structure. (TCP)
| typedef StreamServer_T* StreamServer |
Stream server instance. (TCP)
| typedef struct StreamSession_T StreamSession_T |
Stream server session structure. (TCP)
| typedef StreamSession_T* StreamSession |
Stream server session instance. (TCP)
| typedef void *(* OnStreamSessionCreate) (StreamServer streamServer, StreamSession streamSession) |
Stream session create function. (TCP).
| streamServer | stream server instance |
| streamSession | a new accepted stream session instance |
| typedef void(* OnStreamSessionDestroy) (StreamServer streamServer, StreamSession streamSession, int reason) |
Stream session destroy function. (TCP).
| streamServer | stream server instance |
| streamSession | stream session instance |
| reason | session destruction reason |
| typedef int(* OnStreamSessionReceive) (StreamServer streamServer, StreamSession streamSession, const uint8_t *receiveBuffer, size_t byteCount) |
Stream session data receive function. (TCP).
Server destroys session on this function non zero return result.
| streamServer | stream server instance | |
| streamSession | stream session instance | |
| [in] | receiveBuffer | received data buffer |
| byteCount | received byte count |
| typedef void(* OnStreamServerDatagram) (StreamServer streamServer, SocketAddress remoteAddress, const uint8_t *receiveBuffer, size_t byteCount) |
Stream server datagram receive function. (UDP).
| streamServer | stream server instance | |
| remoteAddress | sender socket remote address | |
| [in] | receiveBuffer | received data buffer |
| byteCount | received byte count |
| NetsResult createStreamServer | ( | SocketFamily | socketFamily, |
| const char * | service, | ||
| size_t | sessionBufferSize, | ||
| size_t | connectionQueueSize, | ||
| size_t | receiveBufferSize, | ||
| double | timeoutTime, | ||
| OnStreamSessionCreate | onCreate, | ||
| OnStreamSessionDestroy | onDestroy, | ||
| OnStreamSessionReceive | onReceive, | ||
| OnStreamServerDatagram | onDatagram, | ||
| void * | handle, | ||
| SslContext | sslContext, | ||
| StreamServer * | streamServer ) |
Creates a new stream server instance. (TCP).
| socketFamily | local socket IP address family | |
| [in] | service | local IP address service string (port) |
| sessionBufferSize | session buffer size | |
| connectionQueueSize | pending connections queue size | |
| receiveBufferSize | receive data buffer size in bytes | |
| timeoutTime | session timeout time in seconds | |
| [in] | onCreate | on session create function |
| [in] | onDestroy | on session destroy function |
| [in] | onReceive | on session data receive function |
| [in] | onDatagram | on datagram receive function or NULL |
| [in] | handle | receive function argument or NULL |
| sslContext | socket SSL context instance or NULL | |
| [out] | streamServer | pointer to the stream server instance |
| void destroyStreamServer | ( | StreamServer | streamServer | ) |
Destroys stream server instance. (TCP).
| streamServer | target stream server instance or NULL |
| size_t getStreamServerSessionBufferSize | ( | StreamServer | streamServer | ) |
Returns stream server session buffer size.
| streamServer | target stream server instance |
| size_t getStreamServerReceiveBufferSize | ( | StreamServer | streamServer | ) |
Returns stream server receive buffer size in bytes.
| streamServer | target stream server instance |
| OnStreamSessionCreate getStreamServerOnCreate | ( | StreamServer | streamServer | ) |
Returns stream server session create function.
| streamServer | target stream server instance |
| OnStreamSessionDestroy getStreamServerOnDestroy | ( | StreamServer | streamServer | ) |
Returns stream server session destroy function.
| streamServer | target stream server instance |
| OnStreamSessionReceive getStreamServerOnReceive | ( | StreamServer | streamServer | ) |
Returns stream server session data receive function.
| streamServer | target stream server instance |
| OnStreamServerDatagram getStreamServerOnDatagram | ( | StreamServer | streamServer | ) |
Returns stream server datagram receive function.
| streamServer | target stream server instance |
| double getStreamServerTimeoutTime | ( | StreamServer | streamServer | ) |
Returns stream server session timeout time. (in seconds).
| streamServer | target stream server instance |
| void * getStreamServerHandle | ( | StreamServer | streamServer | ) |
Returns stream server handle.
| streamServer | target stream server instance |
| uint8_t * getStreamServerReceiveBuffer | ( | StreamServer | streamServer | ) |
Returns stream server receive data buffer.
| streamServer | target stream server instance |
| Socket getStreamServerSocket | ( | StreamServer | streamServer | ) |
Returns stream server socket instance.
| streamServer | target stream server instance |
| Socket getStreamServerDatagramSocket | ( | StreamServer | streamServer | ) |
Returns stream server datagram socket instance.
| streamServer | target stream server instance |
| bool isStreamServerRunning | ( | StreamServer | streamServer | ) |
Returns true if stream server receive thread is running. (MT-Safe).
| streamServer | target stream server instance |
| bool isStreamServerSecure | ( | StreamServer | streamServer | ) |
Returns true if stream server use encrypted connection.
| streamServer | target stream server instance |
| void lockStreamServerSessions | ( | StreamServer | streamServer | ) |
Locks stream server sessions access. (MT-Safe).
| streamServer | target stream server instance |
| void unlockStreamServerSessions | ( | StreamServer | streamServer | ) |
Unlocks stream server sessions access. (MT-Safe).
| streamServer | target stream server instance |
| StreamSession * getStreamServerSessions | ( | StreamServer | streamServer | ) |
Returns stream server session buffer.
| streamServer | target stream server instance |
| size_t getStreamServerSessionCount | ( | StreamServer | streamServer | ) |
Returns stream server session buffer.
| streamServer | target stream server instance |
| Socket getStreamSessionSocket | ( | StreamSession | streamSession | ) |
Returns stream session socket instance.
| streamSession | target stream session instance |
| SocketAddress getStreamSessionRemoteAddress | ( | StreamSession | streamSession | ) |
Returns stream session remote IP address instance.
| streamSession | target stream session instance |
| void * getStreamSessionHandle | ( | StreamSession | streamSession | ) |
Returns stream session handle.
| streamSession | target stream session instance |
| int updateStreamSession | ( | StreamServer | streamServer, |
| StreamSession | streamSession, | ||
| double | currentTime ) |
Updates specified stream server session state.
| streamServer | target stream server instance |
| streamSession | stream session instance to update |
| currentTime | current time value |
| void destroyStreamSession | ( | StreamServer | streamServer, |
| StreamSession | streamSession, | ||
| int | reason ) |
Destroyes specified stream server session.
| streamServer | target stream server instance |
| streamSession | stream session instance to close |
| reason | stream session destruction reason |
| void flushStreamSessions | ( | StreamServer | streamServer | ) |
Flushes destroyed stream server sessions.
| streamServer | target stream server instance |
| void aliveStreamSession | ( | StreamSession | streamSession | ) |
Resets specified stream server session timeout time.
| streamSession | target stream session instance |
| NetsResult streamSessionSend | ( | StreamSession | streamSession, |
| const void * | data, | ||
| size_t | byteCount ) |
Sends stream data to the specified session. (TCP).
| streamSession | target stream session instance | |
| [in] | data | send data buffer |
| byteCount | data byte count to send |
| NetsResult streamServerSendDatagram | ( | StreamServer | streamServer, |
| SocketAddress | remoteAddress, | ||
| const void * | data, | ||
| size_t | byteCount ) |
Sends datagram to the specified socket address. (UDP).
| streamServer | stream server instance | |
| remoteAddress | target remote socket IP address | |
| [in] | data | send data buffer |
| byteCount | data byte count to send |
| NetsResult shutdownStreamSession | ( | StreamSession | streamSession, |
| SocketShutdown | shutdown ) |
Shutdowns part of the full-duplex socket connection.
| streamSession | target stream session instance |
| shutdown | socket connection shutdown mode |