libgadu
1.12.2
|
Struktury danych | |
struct | gg_socket_manager_t |
Struktura opisująca funkcje zarządzające gniazdami, jeżeli aplikacja sama je obsługuje. Więcej... | |
Definicje typów | |
typedef void *(* | gg_socket_manager_connect_cb_t )(void *cb_data, const char *host, int port, int is_tls, int is_async, void *priv) |
Funkcja dostarczona przez aplikację, tworząca nowe gniazdo TCP/TLS. Więcej... | |
typedef void(* | gg_socket_manager_close_cb_t )(void *cb_data, void *handle) |
Niszczy gniazdo i zwalnia wszystkie powiązane z nim zasoby. Więcej... | |
typedef ssize_t(* | gg_socket_manager_read_cb_t )(void *cb_data, void *handle, unsigned char *buffer, size_t bufsize) |
Odbiera z gniazda dane binarne. Więcej... | |
typedef ssize_t(* | gg_socket_manager_write_cb_t )(void *cb_data, void *handle, const unsigned char *data, size_t length) |
Wysyła przez gniazdo dane binarne. Więcej... | |
Wyliczenia | |
enum | gg_socket_manager_type_t { GG_SOCKET_MANAGER_TYPE_INTERNAL = 0, GG_SOCKET_MANAGER_TYPE_TCP, GG_SOCKET_MANAGER_TYPE_TLS } |
Metody nawiązywania połączeń TCP/TLS. Więcej... | |
Funkcje | |
int | gg_socket_manager_connected (void *handle, void *priv, int fd) |
Odbiera nowo utworzone gniazdo TCP/TLS. Więcej... | |
typedef void*(* gg_socket_manager_connect_cb_t)(void *cb_data, const char *host, int port, int is_tls, int is_async, void *priv) |
Funkcja dostarczona przez aplikację, tworząca nowe gniazdo TCP/TLS.
Po nawiązaniu połączenia aplikacja musi wywołać gg_socket_manager_connected. Jeżeli połączenie jest asynchroniczne, wywołanie musi nastąpić po wyjściu z kontekstu tej funkcji. Dla połączeń synchronicznych z kolei, musi nastąpić jeszcze przed wyjściem z kontekstu.
cb_data | Dane prywatne aplikacji |
host | Nazwa hosta |
port | Numer portu |
is_tls | Flaga określająca, czy ma zostać nawiązane połączenie TLS |
is_async | Flaga określająca połączenie asynchroniczne (patrz szczegóły powyżej) |
priv | Dane prywatne biblioteki libgadu (do przekazania do gg_socket_manager_connected) |
typedef void(* gg_socket_manager_close_cb_t)(void *cb_data, void *handle) |
Niszczy gniazdo i zwalnia wszystkie powiązane z nim zasoby.
cb_data | Dane prywatne aplikacji |
handle | Uchwyt gniazda |
typedef ssize_t(* gg_socket_manager_read_cb_t)(void *cb_data, void *handle, unsigned char *buffer, size_t bufsize) |
Odbiera z gniazda dane binarne.
Funkcja powinna zajmować się obsługą TLS, jeżeli gniazdo jest w takim trybie.
cb_data | Dane prywatne aplikacji |
handle | Uchwyt gniazda |
buffer | Bufor do zapisu danych |
bufsize | Rozmiar bufora |
typedef ssize_t(* gg_socket_manager_write_cb_t)(void *cb_data, void *handle, const unsigned char *data, size_t length) |
Wysyła przez gniazdo dane binarne.
Funkcja powinna zajmować się obsługą TLS, jeżeli gniazdo jest w takim trybie.
cb_data | Dane prywatne aplikacji |
handle | Uchwyt gniazda |
data | Dane do wysłania |
length | Rozmiar danych |
int gg_socket_manager_connected | ( | void * | handle, |
void * | priv, | ||
int | fd | ||
) |
Odbiera nowo utworzone gniazdo TCP/TLS.
Po wywołaniu tej funkcji należy zacząć obserwować deskryptor sesji (nawet w przypadku niepowodzenia).
Jeżeli gniazdo nie zostanie obsłużone, należy je zniszczyć.
handle | Uchwyt gniazda |
priv | Dane prywatne biblioteki libgadu |
fd | Deskryptor nowo utworzonego gniazda, lub -1 w przypadku błędu |