|
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. | |
| int | gg_http_watch_fd (struct gg_http *h) |
| Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia. | |
| void | gg_http_stop (struct gg_http *h) |
| Kończy asynchroniczne połączenie HTTP. | |
| void | gg_http_free (struct gg_http *h) |
| Zwalnia zasoby po połączeniu HTTP. | |
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 |