|
libgadu
1.12.2
|
Wyliczenia | |
| enum | { GG_USERLIST_PUT, GG_USERLIST_GET } |
| Rodzaj zapytania. Więcej... | |
| enum | { GG_USERLIST_PUT_REPLY, GG_USERLIST_GET_REPLY } |
| Rodzaj odpowiedzi. Więcej... | |
| enum | { GG_USERLIST100_PUT, GG_USERLIST100_GET } |
| Rodzaj zapytania (10.0). Więcej... | |
| enum | { GG_USERLIST100_FORMAT_TYPE_NONE, GG_USERLIST100_FORMAT_TYPE_GG70, GG_USERLIST100_FORMAT_TYPE_GG100 } |
| Typ formatu listy kontaktów (10.0). Więcej... | |
| enum | { GG_USERLIST100_REPLY_LIST, GG_USERLIST100_REPLY_UPTODATE, GG_USERLIST100_REPLY_ACK, GG_USERLIST100_REPLY_REJECT } |
| Typ odpowiedzi listy kontaktów (10.0). Więcej... | |
Funkcje | |
| int | gg_userlist_request (struct gg_session *sess, char type, const char *request) |
| Wysyła do serwera zapytanie dotyczące listy kontaktów. Więcej... | |
| int | gg_userlist100_request (struct gg_session *sess, char type, unsigned int version, char format_type, const char *request) |
| Wysyła do serwera zapytanie dotyczące listy kontaktów (10.0). Więcej... | |
Serwer pozwala przechowywać kompletną listę kontaktów w postaci tekstowej, by móc z niej korzystać na dowolnym komputerze bez konieczności ręcznego przenoszenia. Format listy kontaktów jest narzucony przez oryginalnego klienta (obecnie istnieją dwa wspierane formaty: pola oddzielone średnikami oraz dokument XML). W celu sprawnej synchronizacji listy kontaktów między różnymi instalacjami klienta sieci, serwer wersjonuje listę kontaktów i pozwala ją nadpisać tylko w przypadku, gdy zadeklarujemy znajomość jej ostatniej wersji.
Aby wysłać listę kontaktów, wywołujemy:
W odpowiedzi dostaniemy od serwera zdarzenie GG_EVENT_USERLIST100_REPLY z polem type równym GG_USERLIST100_REPLY_ACK w przypadku akceptacji wysłanej listy kontaktów lub GG_USERLIST100_REPLY_REJECT w przypadku jej odrzucenia. Pole version zawiera numer aktualnie przechowywanej przez serwer listy kontaktów (w przypadku przyjęcia nowej, jest to numer tej nowej wersji).
Jeśli chcemy pobrać listę kontaktów z serwera, wywołujemy:
Oczekujemy zdarzenia GG_EVENT_USERLIST100_REPLY z type równym GG_USERLIST100_REPLY_LIST. Zawartość listy kontaktów znajdziemy w polu reply, a jej wersję w polu version.
Ponadto możemy dostać od serwera informację o nowej wersji listy kontaktów. Wówczas dostaniemy zdarzenie GG_EVENT_USERLIST100_VERSION z polem version równym numerowi nowej wersji listy konktaktów.
| anonymous enum |
| anonymous enum |
| anonymous enum |
| anonymous enum |
| anonymous enum |
Typ odpowiedzi listy kontaktów (10.0).
| Wartości wyliczeń | |
|---|---|
| GG_USERLIST100_REPLY_LIST |
W odpowiedzi znajduje się aktualna lista kontaktów na serwerze. |
| GG_USERLIST100_REPLY_UPTODATE |
Komunikat o tym, że lista kontaktów jest już zsynchronizowana. |
| GG_USERLIST100_REPLY_ACK |
Potwierdzenie odebrania nowej wersji listy kontaktów. W polu |
| GG_USERLIST100_REPLY_REJECT |
Odmowa przyjęcia nowej wersji listy kontaktów. W polu |
| int gg_userlist_request | ( | struct gg_session * | sess, |
| char | type, | ||
| const char * | request | ||
| ) |
Wysyła do serwera zapytanie dotyczące listy kontaktów.
Funkcja służy do importu lub eksportu listy kontaktów do serwera. W odróżnieniu od funkcji gg_notify(), ta lista kontaktów jest przez serwer jedynie przechowywana i nie ma wpływu na połączenie. Format listy kontaktów jest ignorowany przez serwer, ale ze względu na kompatybilność z innymi klientami, należy przechowywać dane w tym samym formacie co oryginalny klient Gadu-Gadu.
Program nie musi się przejmować fragmentacją listy kontaktów wynikającą z protokołu – wysyła i odbiera kompletną listę.
| sess | Struktura sesji |
| type | Rodzaj zapytania |
| request | Treść zapytania (może być równe NULL) |
| int gg_userlist100_request | ( | struct gg_session * | sess, |
| char | type, | ||
| unsigned int | version, | ||
| char | format_type, | ||
| const char * | request | ||
| ) |
Wysyła do serwera zapytanie dotyczące listy kontaktów (10.0).
Funkcja służy do importu lub eksportu listy kontaktów do serwera. W odróżnieniu od funkcji gg_notify(), ta lista kontaktów jest przez serwer jedynie przechowywana i nie ma wpływu na połączenie. Format listy kontaktów jest jednak weryfikowany przez serwer, który stara się synchronizować listę kontaktów zapisaną w formatach GG 7.0 oraz GG 10.0. Serwer przyjmuje listy kontaktów przysłane w formacie niezgodnym z podanym jako format_type, ale nie zachowuje ich, a przesłanie takiej listy jest równoznaczne z usunięciem listy kontaktów.
Program nie musi się przejmować kompresją listy kontaktów zgodną z protokołem – wysyła i odbiera kompletną listę zapisaną czystym tekstem.
| sess | Struktura sesji |
| type | Rodzaj zapytania |
| version | Numer ostatniej znanej programowi wersji listy kontaktów lub 0 |
| format_type | Typ formatu listy kontaktów |
| request | Treść zapytania (może być równe NULL) |
1.8.6