libgadu 1.12.2

- Strona główna
- Dodatkowe strony
- Moduły
- Struktury Danych
- Pliki

Struktury danych | Wyliczenia | Funkcje
Usługi HTTP
Usługi dodatkowe

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

## 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

enum 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

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

  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

Zwraca
  Zaalokowana struktura `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`.

Parametry

  h | Struktura połączenia

Zwraca
  0 jeśli się powiodło, -1 w przypadku błędu

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

  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.

Parametry

  h | Struktura połączenia