GATE
C/C++ Framework
|
Additional network socket tools. More...
#include "gate/net/gate_net_api.h"
#include "gate/gatetypes.h"
#include "gate/strings.h"
#include "gate/net/sockets.h"
#include "gate/queues.h"
#include "gate/arrays.h"
#include "gate/synchronization.h"
#include "gate/comparers.h"
#include "gate/streams.h"
Functions | |
GATE_NET_API gate_result_t | gate_socketselector_create (gate_socketselector_t *selector) |
Initlializes a socket selector struct. | |
GATE_NET_API gate_result_t | gate_socketselector_destroy (gate_socketselector_t *selector) |
Releases resources of an initialized socket selector struct. | |
GATE_NET_API gate_result_t | gate_socketselector_interrupt (gate_socketselector_t *selector) |
Interrupts a waiting selector (blocking in a select-call) | |
GATE_NET_API gate_result_t | gate_socketselector_select (gate_socketselector_t *selector, gate_socket_t const *socks, gate_size_t sockscount, gate_uint8_t *statusflags, gate_uint32_t timeout) |
Waits for events on a set of sockets and their specified event-interests. | |
GATE_NET_API gate_result_t | gate_socketgroup_create (gate_socketgroup_t *group, void *user_tag) |
Creates a new socketgroup object. | |
GATE_NET_API gate_result_t | gate_socketgroup_destroy (gate_socketgroup_t *group) |
Destroys a socketgroup object. | |
GATE_NET_API gate_result_t | gate_socketgroup_remove (gate_socketgroup_t *group, gate_socket_t sock) |
Removes all pending tasks for a specific socket from a socketgroup object. | |
GATE_NET_API gate_result_t | gate_socketgroup_clear (gate_socketgroup_t *group) |
Clears the group-queue and removes all pending tasks. | |
GATE_NET_API gate_result_t | gate_socketgroup_connect (gate_socketgroup_t *group, gate_socket_t sock, gate_socket_endpoint_t const *endpoint, void *param) |
Adds a socket-connect task to a socketgroup object. | |
GATE_NET_API gate_result_t | gate_socketgroup_accept (gate_socketgroup_t *group, gate_socket_t sock, void *param) |
Adds a socket-accept task to a socketgroup object. | |
GATE_NET_API gate_result_t | gate_socketgroup_read (gate_socketgroup_t *group, gate_socket_t sock, gate_size_t length, void *param) |
Adds a socket read/receive task to a socketgroup object. | |
GATE_NET_API gate_result_t | gate_socketgroup_write (gate_socketgroup_t *group, gate_socket_t sock, char const *data, gate_size_t length, void *param) |
Adds a socket write/send task to a socketgroup object. | |
GATE_NET_API gate_result_t | gate_socketgroup_shutdown_write (gate_socketgroup_t *group, gate_socket_t sock, void *param) |
Adds a socket-shutdown-write task to a socketgroup object. | |
GATE_NET_API gate_result_t | gate_socketgroup_run (gate_socketgroup_t *group, gate_socketgroup_callback_t callback) |
Runs a socketgroup queue-session. | |
GATE_NET_API gate_result_t | gate_socketgroup_quit (gate_socketgroup_t *group) |
Quits a running socketgroup session. | |
GATE_NET_API gate_result_t | gate_socketqueue_create (gate_socketqueue_t **ptr_queue, gate_uint32_t idle_interval_ms) |
Creates a socket queue object. | |
GATE_NET_API gate_result_t | gate_socketstream_create (gate_socket_t sock, gate_controlstream_t **ptr_stream) |
Creates a stream object from a TCP client socket. | |
GATE_NET_API gate_result_t | gate_socketstream_create_endpoint (gate_socket_endpoint_t const *ep, gate_controlstream_t **ptr_stream, gate_bool_t delay_connect) |
Creates a stream object from a TCP client socket. | |
GATE_NET_API gate_result_t | gate_socketstream_create_address (gate_string_t const *addr, gate_controlstream_t **ptr_stream, gate_bool_t delay_connect) |
Create as stream object from a TCP client socket. | |
GATE_NET_API gate_result_t | gate_socketstream_create_server (gate_socket_endpoint_t const *bind_ep, gate_controlstream_t **ptr_stream) |
Creates a stream object from a TCP server socket. |
Additional network socket tools.
GATE_NET_API gate_result_t gate_socketselector_create | ( | gate_socketselector_t * | selector | ) |
Initlializes a socket selector struct.
[in] | selector | Pointer to selector to be initialized |
GATE_NET_API gate_result_t gate_socketselector_destroy | ( | gate_socketselector_t * | selector | ) |
Releases resources of an initialized socket selector struct.
[in] | selector | Pointer to selector to be destroyed |
GATE_NET_API gate_result_t gate_socketselector_interrupt | ( | gate_socketselector_t * | selector | ) |
Interrupts a waiting selector (blocking in a select-call)
[in] | selector | Pointer to selector to be interrupted |
GATE_NET_API gate_result_t gate_socketselector_select | ( | gate_socketselector_t * | selector, |
gate_socket_t const * | socks, | ||
gate_size_t | sockscount, | ||
gate_uint8_t * | statusflags, | ||
gate_uint32_t | timeout ) |
Waits for events on a set of sockets and their specified event-interests.
[in] | selector | Pointer to selector |
[in] | socks | Pointer to array of sockets to watch |
[in] | sockscount | Count of items in socks array |
[in,out] | statusflags | Pointer to array of statusflags to watch associated to socks which are updated with detected status on return |
[in] | timeout | Maximum timeout in milliseconds |
GATE_NET_API gate_result_t gate_socketgroup_create | ( | gate_socketgroup_t * | group, |
void * | user_tag ) |
Creates a new socketgroup object.
[out] | group | pointer to socketgroup object to be initialized |
[in] | user_tag | user parameter for event handling |
GATE_NET_API gate_result_t gate_socketgroup_destroy | ( | gate_socketgroup_t * | group | ) |
Destroys a socketgroup object.
[in] | group | pointer to socketgroup object |
GATE_NET_API gate_result_t gate_socketgroup_remove | ( | gate_socketgroup_t * | group, |
gate_socket_t | sock ) |
Removes all pending tasks for a specific socket from a socketgroup object.
[in] | group | pointer to socketgroup object |
[in] | sock | socket to be removed |
GATE_NET_API gate_result_t gate_socketgroup_clear | ( | gate_socketgroup_t * | group | ) |
Clears the group-queue and removes all pending tasks.
[in] | group | pointer to socketgroup object |
GATE_NET_API gate_result_t gate_socketgroup_connect | ( | gate_socketgroup_t * | group, |
gate_socket_t | sock, | ||
gate_socket_endpoint_t const * | endpoint, | ||
void * | param ) |
Adds a socket-connect task to a socketgroup object.
[in] | group | pointer to queue |
[in] | sock | socket to be accessed |
[in] | ep | pointer to destination-endpoint |
[in] | param | parameter for event callback |
GATE_NET_API gate_result_t gate_socketgroup_accept | ( | gate_socketgroup_t * | group, |
gate_socket_t | sock, | ||
void * | param ) |
Adds a socket-accept task to a socketgroup object.
[in] | group | pointer to queue |
[in] | sock | socket to be accessed |
[in] | param | parameter for event callback |
GATE_NET_API gate_result_t gate_socketgroup_read | ( | gate_socketgroup_t * | group, |
gate_socket_t | sock, | ||
gate_size_t | length, | ||
void * | param ) |
Adds a socket read/receive task to a socketgroup object.
[in] | group | pointer to socketgroup object |
[in] | sock | socket to be accessed |
[in] | length | maximum length in bytes to be requested from socket |
[in] | param | parameter for event callback |
GATE_NET_API gate_result_t gate_socketgroup_write | ( | gate_socketgroup_t * | group, |
gate_socket_t | sock, | ||
char const * | data, | ||
gate_size_t | length, | ||
void * | param ) |
Adds a socket write/send task to a socketgroup object.
[in] | group | pointer to socketgroup object |
[in] | sock | socket to be accessed |
[in] | data | pointer to data to be sent |
[in] | length | length of send-data in bytes |
[in] | param | parameter for event callback |
GATE_NET_API gate_result_t gate_socketgroup_shutdown_write | ( | gate_socketgroup_t * | group, |
gate_socket_t | sock, | ||
void * | param ) |
Adds a socket-shutdown-write task to a socketgroup object.
[in] | group | pointer to socketgroup object |
[in] | sock | socket to be shut down |
[in] | param | parameter for event callback |
GATE_NET_API gate_result_t gate_socketgroup_run | ( | gate_socketgroup_t * | group, |
gate_socketgroup_callback_t | callback ) |
Runs a socketgroup queue-session.
[in] | group | pointer to queue to be executed |
[in] | callback | pointer to callback function for event handling |
GATE_NET_API gate_result_t gate_socketgroup_quit | ( | gate_socketgroup_t * | group | ) |
Quits a running socketgroup session.
[in] | group | pointer to queue-pointer to be filled with created object |
GATE_NET_API gate_result_t gate_socketqueue_create | ( | gate_socketqueue_t ** | ptr_queue, |
gate_uint32_t | idle_interval_ms ) |
Creates a socket queue object.
[out] | ptr_queue | pointer to queue-pointer to be filled with created object |
[in] | idle_interval_ms | idle interval in milliseconds, invokes HEARTBEAT callback if no event occurs. |
GATE_NET_API gate_result_t gate_socketstream_create | ( | gate_socket_t | sock, |
gate_controlstream_t ** | ptr_stream ) |
Creates a stream object from a TCP client socket.
[in] | sock | a connected tcp socket |
[out] | ptr_stream | pointer to stream-pointer to be filled with created stream |
GATE_NET_API gate_result_t gate_socketstream_create_endpoint | ( | gate_socket_endpoint_t const * | ep, |
gate_controlstream_t ** | ptr_stream, | ||
gate_bool_t | delay_connect ) |
Creates a stream object from a TCP client socket.
[in] | ep | pointer to destination endpoint |
[out] | ptr_stream | pointer to stream-pointer to be filled with created stream |
[in] | delay_connect | create stream with delayed-connect, false=connect immediately, true=connect on first read/write access |
GATE_NET_API gate_result_t gate_socketstream_create_address | ( | gate_string_t const * | addr, |
gate_controlstream_t ** | ptr_stream, | ||
gate_bool_t | delay_connect ) |
Create as stream object from a TCP client socket.
[in] | addr | target address to be parsed and connected |
[out] | ptr_stream | pointer to stream-pointer to be filled with created stream |
[in] | delay_connect | create stream with delayed-connect, false=connect immediately, true=connect on first read/write access |
GATE_NET_API gate_result_t gate_socketstream_create_server | ( | gate_socket_endpoint_t const * | bind_ep, |
gate_controlstream_t ** | ptr_stream ) |
Creates a stream object from a TCP server socket.
[in] | ep | pointer to destination endpoint |
[out] | ptr_stream | pointer to stream-pointer to be filled with created stream |
[in] | delay_connect | create stream with delayed-connect, false=connect immediately, true=connect on first read/write access |