libgadu
1.12.2
|
Struktury danych | |
struct | gg_http |
Połączenie HTTP. Więcej... | |
struct | gg_pubdir |
Wynik operacji na katalogu publicznym. Więcej... | |
Wyliczenia | |
enum | gg_pubdir_error_t { GG_PUBDIR_ERROR_NONE = 0, GG_PUBDIR_ERROR_OTHER, GG_PUBDIR_ERROR_TOKEN, GG_PUBDIR_ERROR_OLD_PASSWORD, GG_PUBDIR_ERROR_NEW_PASSWORD } |
Powód błędu operacji na katalogu publicznym. Więcej... | |
Funkcje | |
struct gg_http * | gg_http_connect (const char *hostname, int port, int async, const char *method, const char *path, const char *header) |
Rozpoczyna połączenie HTTP. Więcej... | |
int | gg_http_watch_fd (struct gg_http *h) |
Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia. Więcej... | |
void | gg_http_stop (struct gg_http *h) |
Kończy asynchroniczne połączenie HTTP. Więcej... | |
void | gg_http_free (struct gg_http *h) |
Zwalnia zasoby po połączeniu HTTP. Więcej... | |
Obecnie wszystkie usługi dodatkowe są realizowane za pomocą protokołu HTTP. Przy operacjach synchronicznych należy jedynie wywołać funkcję, sprawdzić kod błędu i jeśli operacja się powiodła, należy odczytać wynik funkcji z odpowiedniej struktury.
Operacje asynchroniczne różnią się od zwykłych połączeń z serwerem jedynie tym, że zakończenie operacji jest określane przez pole state
, które przyjmuje wartość GG_STATE_DONE
w przypadku sukcesu lub GG_STATE_ERROR
w przypadku błędu. Podobnie jak w przypadku połączenia z serwerem, należy wywoływać funkcję gg_http_watch_fd()
po zaobserwowaniu zmian na określonym deskryptorze.
Każdą operację asynchroniczną można ponadto zatrzymać w trakcie działania za pomocą funkcji gg_http_stop()
.
Część operacji związanych z katalogiem publicznym w polu data
struktury gg_http
przekazuje strukturę gg_pubdir
zawierającą wynik danej operacji. Szczegóły znajdują się na stronach poszczególnych usług dodatkowych.
enum gg_pubdir_error_t |
struct gg_http* gg_http_connect | ( | const char * | hostname, |
int | port, | ||
int | async, | ||
const char * | method, | ||
const char * | path, | ||
const char * | header | ||
) |
Rozpoczyna połączenie HTTP.
Funkcja przeprowadza połączenie HTTP przy połączeniu synchronicznym, zwracając wynik w polach struktury gg_http
, lub błąd, gdy sesja się nie powiedzie.
Przy połączeniu asynchronicznym, funkcja rozpoczyna połączenie, a dalsze etapy będą przeprowadzane po wykryciu zmian (watch
) na obserwowanym deskryptorze (fd
) i wywołaniu funkcji gg_http_watch_fd()
.
Po zakończeniu, należy zwolnić strukturę za pomocą funkcji gg_http_free()
. Połączenie asynchroniczne można zatrzymać w każdej chwili za pomocą gg_http_stop()
.
hostname | Adres serwera |
port | Port serwera |
async | Flaga asynchronicznego połączenia |
method | Metoda HTTP |
path | Ścieżka do zasobu (musi być poprzedzona znakiem '/') |
header | Nagłówek zapytania plus ewentualne dane dla POST |
gg_http
lub NULL, jeśli wystąpił błąd. int gg_http_watch_fd | ( | struct gg_http * | h | ) |
Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia.
Operacja będzie zakończona, gdy pole state
będzie równe GG_STATE_PARSING
. W tym miejscu działanie przejmuje zwykle funkcja korzystająca z gg_http_watch_fd()
. W przypadku błędu połączenia, pole state
będzie równe GG_STATE_ERROR
, a kod błędu znajdzie się w polu error
.
h | Struktura połączenia |
void gg_http_stop | ( | struct gg_http * | h | ) |
Kończy asynchroniczne połączenie HTTP.
Po zatrzymaniu należy zwolnić zasoby funkcją gg_http_free()
.
h | Struktura połączenia |
void gg_http_free | ( | struct gg_http * | h | ) |
Zwalnia zasoby po połączeniu HTTP.
Jeśli połączenie nie zostało jeszcze zakończone, jest przerywane.
h | Struktura połączenia |