Stream server instance handle. (TCP). More...
#include <stream-server.hpp>
Public Member Functions | |
| IStreamServer (const IStreamServer &)=delete | |
| IStreamServer (IStreamServer &&r) noexcept | |
| IStreamServer & | operator= (IStreamServer &)=delete |
| IStreamServer & | operator= (IStreamServer &&r) noexcept |
| IStreamServer (SocketFamily socketFamily, const char *service, size_t sessionBufferSize=512, size_t connectionQueueSize=256, size_t receiveBufferSize=UINT16_MAX+1, double timeoutTime=5.0, SslContextView sslContext=nullptr) | |
| Creates a new stream server instance. (TCP). | |
| void | destroy () noexcept |
| Destroys stream server instance. | |
| virtual void * | onSessionCreate (StreamSessionView streamSession)=0 |
| Stream session create function. (TCP). | |
| virtual void | onSessionDestroy (StreamSessionView streamSession, int reason)=0 |
| Stream session destroy function. (TCP). | |
| virtual int | onStreamReceive (StreamSessionView streamSession, const uint8_t *receiveBuffer, size_t byteCount)=0 |
| Stream session data receive function. (TCP). | |
| virtual void | onDatagramReceive (SocketAddressView remoteAddress, const uint8_t *receiveBuffer, size_t byteCount)=0 |
| Stream server datagram receive function. (UDP). | |
| virtual string | reasonToString (int reason) |
| Converts reason value to string. | |
| StreamServer_T * | getInstance () const noexcept |
| Returns stream server handle instance. | |
| size_t | getSessionBufferSize () const noexcept |
| Returns stream server session buffer size. | |
| size_t | getReceiveBufferSize () const noexcept |
| Returns stream server receive buffer size in bytes. | |
| double | getTimeoutTime () const noexcept |
| Returns stream server session timeout time. (in seconds). | |
| uint8_t * | getReceiveBuffer () const noexcept |
| Returns stream server receive data buffer. | |
| SocketView | getSocket () const noexcept |
| Returns stream server socket instance. | |
| bool | isRunning () const noexcept |
| Returns true if stream server receive thread is running. (MT-Safe). | |
| bool | isSecure () const noexcept |
| Returns true if stream server use encrypted connection. | |
| void | lockSessions () noexcept |
| Locks stream server session buffer access. (MT-Safe). | |
| void | unlockSessions () noexcept |
| Unlocks stream server session buffer access. (MT-Safe). | |
| StreamSessionView * | getSessions () noexcept |
| Returns stream server session buffer. | |
| size_t | getSessionCount () noexcept |
| Returns stream server session count. | |
| int | updateSession (StreamSessionView streamSession, double currentTime) noexcept |
| Updates specified stream server session. | |
| void | destroySession (StreamSessionView streamSession, int reason) noexcept |
| Destroys specified stream server session. | |
| void | flushSessions () noexcept |
| Flushes destroyed stream server sessions. | |
| NetsResult | sendDatagram (SocketAddressView remoteAddress, const void *data, size_t byteCount) noexcept |
| Sends datagram to the specified stream session. (UDP). | |
| NetsResult | sendDatagram (SocketAddressView remoteAddress, const OutStreamMessage &message) noexcept |
| Sends datagram to the specified session. (UDP). | |
Protected Attributes | |
| StreamServer_T * | instance = nullptr |
Stream server instance handle. (TCP).
See the stream-server.h
|
inline |
Creates a new stream server instance. (TCP).
See the createStreamServer().
| socketFamily | local socket IP address family | |
| [in] | service | local IP address service string (port) |
| sessionBufferSize | maximum stream session count | |
| connectionQueueSize | pending connections queue size | |
| receiveBufferSize | receive data buffer size in bytes | |
| timeoutTime | session timeout time in seconds | |
| sslContext | socket SSL context instance or NULL |
| Error | with a NetsResult string on failure. |
|
inlinenoexcept |
Destroys stream server instance.
See the destroyStreamServer().
|
pure virtual |
Stream session create function. (TCP).
| streamSession | a new accepted stream session instance |
|
pure virtual |
Stream session destroy function. (TCP).
| streamSession | stream session instance |
| reason | stream session destruction reason |
|
pure virtual |
Stream session data receive function. (TCP).
Server destroys session on this function non zero return result.
| streamSession | stream session instance | |
| [in] | receiveBuffer | received data buffer |
| byteCount | received byte count |
|
pure virtual |
Stream server datagram receive function. (UDP).
| remoteAddress | sender remote socket address | |
| [in] | receiveBuffer | received data buffer |
| byteCount | received byte count |
|
inlinevirtual |
Converts reason value to string.
| reason | target reason value |
|
inlinenoexcept |
Returns stream server session buffer size.
See the getStreamServerSessionBufferSize().
|
inlinenoexcept |
Returns stream server receive buffer size in bytes.
See the getStreamServerReceiveBufferSize().
|
inlinenoexcept |
Returns stream server session timeout time. (in seconds).
See the getStreamServerTimeoutTime().
|
inlinenoexcept |
Returns stream server receive data buffer.
See the getStreamServerReceiveBuffer().
|
inlinenoexcept |
Returns stream server socket instance.
See the getStreamServerSocket().
|
inlinenoexcept |
Returns true if stream server receive thread is running. (MT-Safe).
See the isStreamServerRunning().
|
inlinenoexcept |
Returns true if stream server use encrypted connection.
See the isStreamServerSecure().
|
inlinenoexcept |
Locks stream server session buffer access. (MT-Safe).
See the lockStreamServerSessions().
|
inlinenoexcept |
Unlocks stream server session buffer access. (MT-Safe).
See the unlockStreamServerSessions().
|
inlinenoexcept |
Returns stream server session buffer.
See the getStreamServerSessions().
|
inlinenoexcept |
Returns stream server session count.
See the getStreamServerSessionCount().
|
inlinenoexcept |
Updates specified stream server session.
See the updateStreamSession().
| streamSession | stream session instance to update |
| currentTime | current time value |
|
inlinenoexcept |
Destroys specified stream server session.
See the destroyStreamSession().
| streamSession | stream session instance to close |
| reason | stream session destruction reason |
|
inlinenoexcept |
Flushes destroyed stream server sessions.
See the flushStreamSessions().
|
inlinenoexcept |
Sends datagram to the specified stream session. (UDP).
See the streamServerSendDatagram().
| remoteAddress | target remote socket IP address | |
| [in] | data | send data buffer |
| byteCount | data byte count to send |
|
inlinenoexcept |
Sends datagram to the specified session. (UDP).
See the streamServerSendDatagram().
| remoteAddress | target remote socket IP address | |
| [in] | message | datagram message to send |