libgadu  1.12.2
Struktury danych | Wyliczenia | Funkcje
Usługi HTTP
Diagram współpracy dla Usługi HTTP:

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_httpgg_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...
 

Opis szczegółowy

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.

Dokumentacja typów wyliczanych

◆ gg_pubdir_error_t

Powód błędu operacji na katalogu publicznym.

Wartości wyliczeń
GG_PUBDIR_ERROR_NONE 

Brak błędu.

GG_PUBDIR_ERROR_OTHER 

Nieznany błąd.

GG_PUBDIR_ERROR_TOKEN 

Błędny token.

GG_PUBDIR_ERROR_OLD_PASSWORD 

Niepoprawne stare hasło.

GG_PUBDIR_ERROR_NEW_PASSWORD 

Niepoprawne nowe hasło.

Dokumentacja funkcji

◆ gg_http_connect()

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().

Parametry
hostnameAdres serwera
portPort serwera
asyncFlaga asynchronicznego połączenia
methodMetoda HTTP
pathŚcieżka do zasobu (musi być poprzedzona znakiem '/')
headerNagłówek zapytania plus ewentualne dane dla POST
Zwraca
Zaalokowana struktura gg_http lub NULL, jeśli wystąpił błąd.

◆ gg_http_watch_fd()

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.

Parametry
hStruktura połączenia
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu

◆ gg_http_stop()

void gg_http_stop ( struct gg_http h)

Kończy asynchroniczne połączenie HTTP.

Po zatrzymaniu należy zwolnić zasoby funkcją gg_http_free().

Parametry
hStruktura połączenia

◆ gg_http_free()

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.

Parametry
hStruktura połączenia