|
libgadu 1.12.2
|

Wyliczenia | |
| enum | { GG_PUBDIR50_UIN , GG_PUBDIR50_STATUS , GG_PUBDIR50_FIRSTNAME , GG_PUBDIR50_LASTNAME , GG_PUBDIR50_NICKNAME , GG_PUBDIR50_BIRTHYEAR , GG_PUBDIR50_CITY , GG_PUBDIR50_GENDER , GG_PUBDIR50_ACTIVE , GG_PUBDIR50_START , GG_PUBDIR50_FAMILYNAME , GG_PUBDIR50_FAMILYCITY } |
| Rodzaj pola zapytania. Więcej... | |
| enum | { GG_PUBDIR50_GENDER_FEMALE , GG_PUBDIR50_GENDER_MALE } |
| Wartość pola GG_PUBDIR50_GENDER przy wyszukiwaniu. Więcej... | |
| enum | { GG_PUBDIR50_GENDER_SET_FEMALE , GG_PUBDIR50_GENDER_SET_MALE } |
| Wartość pola GG_PUBDIR50_GENDER przy wysyłaniu informacji o sobie. Więcej... | |
| enum | { GG_PUBDIR50_ACTIVE_TRUE } |
| Wartość pola GG_PUBDIR50_ACTIVE. Więcej... | |
| enum | { GG_PUBDIR50_WRITE , GG_PUBDIR50_READ , GG_PUBDIR50_SEARCH , GG_PUBDIR50_SEARCH_REPLY } |
| Rodzaj zapytania lub odpowiedzi katalogu publicznego. Więcej... | |
Funkcje | |
| gg_pubdir50_t | gg_pubdir50_new (int type) |
| Tworzy nowe zapytanie katalogu publicznego. | |
| int | gg_pubdir50_add (gg_pubdir50_t req, const char *field, const char *value) |
| Dodaje pole zapytania. | |
| int | gg_pubdir50_seq_set (gg_pubdir50_t req, uint32_t seq) |
| Ustawia numer sekwencyjny zapytania. | |
| void | gg_pubdir50_free (gg_pubdir50_t s) |
| Zwalnia zasoby po zapytaniu lub odpowiedzi katalogu publicznego. | |
| uint32_t | gg_pubdir50 (struct gg_session *sess, gg_pubdir50_t req) |
| Wysyła zapytanie katalogu publicznego do serwera. | |
| const char * | gg_pubdir50_get (gg_pubdir50_t res, int num, const char *field) |
| Pobiera pole z odpowiedzi katalogu publicznego. | |
| int | gg_pubdir50_count (gg_pubdir50_t res) |
| Zwraca liczbę wyników odpowiedzi. | |
| int | gg_pubdir50_type (gg_pubdir50_t res) |
| Zwraca rodzaj zapytania lub odpowiedzi. | |
| uin_t | gg_pubdir50_next (gg_pubdir50_t res) |
| Zwraca numer, od którego należy rozpocząc kolejne wyszukiwanie. | |
| uint32_t | gg_pubdir50_seq (gg_pubdir50_t res) |
| Zwraca numer sekwencyjny zapytania lub odpowiedzi. | |
Funkcje katalogu publicznego pozwalają wyszukiwać znajomych oraz manipulować informacjami o sobie (imię, nazwisko, miejscowość, rok urodzenia itd.). Każda operacja na katalogu publicznym wymaga skonstruowania odpowiedniego zapytania do serwera i ewentualnej obsłudze odpowiedzi.
Wyszukiwanie może wyglądać następująco:
Jak widać, gg_pubdir50_new() tworzy obiekt opisujący operację katalogu, gg_pubdir50_add() dodaje kolejne pola zapytania. Pole zapytania jest w rzeczywiści stałą tekstową, np. GG_PUBDIR50_UIN to "FmNumber". Należy pamiętać, że wszystkie argumenty są tekstami, ale nie trzeba się przejmować alokacją pamięci — biblioteka zapamięta to, co jest potrzebne. Kodowanie tekstów jest zgodne z ustawieniem sesji. Na końcu wywołujemy funkcję gg_pubdir50(), która zwróci numer sekwencyjny wyszukiwania (można zachować dla późniejszego rozróżnienia wyników).
Aby otrzymać wynik, należy obsłużyć zdarzenia GG_EVENT_PUBDIR50_SEARCH_REPLY, GG_EVENT_PUBDIR50_WRITE i GG_EVENT_PUBDIR50_READ. Dla przykładu, obsługa wyników wyszukiwania wygląda następująco:
Jeśli chcemy wiedzieć, od jakiego numeru zacząć wyszukiwanie, żeby dostać dalszą część, używamy gg_pubdir50_next(). Numer sekwencyjny otrzymamy dzięki funkcji gg_pubdir50_seq().
gg_pubdir50_t, ponieważ mogą się zmieniać między wersjami biblioteki. Dzięki odwoływaniu się przez funkcje, mamy pewność, że bez względu na zmiany API/ABI otrzymamy to samo. Dodatkowo, jeśli pojawią się nowe pola, wystarczy odwoływać się do nich tak jak do obecnych, za pomocą funkcji gg_pubdir50_add() i gg_pubdir50_get(). | anonymous enum |
Rodzaj pola zapytania.
| anonymous enum |
| anonymous enum |
| anonymous enum |
| anonymous enum |
Rodzaj zapytania lub odpowiedzi katalogu publicznego.
| gg_pubdir50_t gg_pubdir50_new | ( | int | type | ) |
Tworzy nowe zapytanie katalogu publicznego.
| type | Rodzaj zapytania |
gg_pubdir50_t lub NULL w przypadku błędu. | int gg_pubdir50_add | ( | gg_pubdir50_t | req, |
| const char * | field, | ||
| const char * | value | ||
| ) |
Dodaje pole zapytania.
| req | Zapytanie |
| field | Nazwa pola |
| value | Wartość pola |
| int gg_pubdir50_seq_set | ( | gg_pubdir50_t | req, |
| uint32_t | seq | ||
| ) |
Ustawia numer sekwencyjny zapytania.
| req | Zapytanie |
| seq | Numer sekwencyjny |
| void gg_pubdir50_free | ( | gg_pubdir50_t | s | ) |
Zwalnia zasoby po zapytaniu lub odpowiedzi katalogu publicznego.
| s | Zapytanie lub odpowiedź |
| uint32_t gg_pubdir50 | ( | struct gg_session * | sess, |
| gg_pubdir50_t | req | ||
| ) |
Wysyła zapytanie katalogu publicznego do serwera.
| sess | Struktura sesji |
| req | Zapytanie |
| const char * gg_pubdir50_get | ( | gg_pubdir50_t | res, |
| int | num, | ||
| const char * | field | ||
| ) |
Pobiera pole z odpowiedzi katalogu publicznego.
| res | Odpowiedź |
| num | Numer wyniku odpowiedzi |
| field | Nazwa pola (wielkość liter nie ma znaczenia) |
NULL jeśli nie znaleziono | int gg_pubdir50_count | ( | gg_pubdir50_t | res | ) |
Zwraca liczbę wyników odpowiedzi.
| res | Odpowiedź |
| int gg_pubdir50_type | ( | gg_pubdir50_t | res | ) |
Zwraca rodzaj zapytania lub odpowiedzi.
| res | Zapytanie lub odpowiedź |
| uin_t gg_pubdir50_next | ( | gg_pubdir50_t | res | ) |
Zwraca numer, od którego należy rozpocząc kolejne wyszukiwanie.
Dłuższe odpowiedzi katalogu publicznego są wysyłane przez serwer w mniejszych paczkach. Po otrzymaniu odpowiedzi, jeśli numer kolejnego wyszukiwania jest większy od zera, dalsze wyniki można otrzymać przez wywołanie kolejnego zapytania z określonym numerem początkowym.
| res | Odpowiedź |
| uint32_t gg_pubdir50_seq | ( | gg_pubdir50_t | res | ) |
Zwraca numer sekwencyjny zapytania lub odpowiedzi.
| res | Zapytanie lub odpowiedź |