libgadu  1.12.2
 All Struktury Danych Pliki Funkcje Zmienne Definicje typów Wyliczenia Wartości wyliczeń Definicje Grupay Strony
Wyliczenia | Funkcje
Lista kontaktów

Wyliczenia

enum  {
  GG_USER_NORMAL,
  GG_USER_BLOCKED,
  GG_USER_OFFLINE
}
 Rodzaj kontaktu. Więcej...
 

Funkcje

int gg_notify_ex (struct gg_session *sess, uin_t *userlist, char *types, int count)
 Wysyła do serwera listę kontaktów. Więcej...
 
int gg_notify (struct gg_session *sess, uin_t *userlist, int count)
 Wysyła do serwera listę kontaktów. Więcej...
 
int gg_add_notify_ex (struct gg_session *sess, uin_t uin, char type)
 Dodaje kontakt. Więcej...
 
int gg_add_notify (struct gg_session *sess, uin_t uin)
 Dodaje kontakt. Więcej...
 
int gg_remove_notify_ex (struct gg_session *sess, uin_t uin, char type)
 Usuwa kontakt. Więcej...
 
int gg_remove_notify (struct gg_session *sess, uin_t uin)
 Usuwa kontakt. Więcej...
 

Opis szczegółowy

Po udanym połączeniu z serwerem, pierwszą czynnością powinno być wysłanie listy kontaktów. W innym przypadku serwer nie wyśle żadnych zakolejkowanych wiadomości, ponieważ najprawdopodobniej filtry antyspamowe traktują inaczej wiadomości od znajomych i nieznajomych. Do wysłania listy kontaktów zaraz po udanym połączeniu, nawet gdyby była pusta, należy użyć funkcji gg_notify() lub gg_notify_ex(). Dodawanie i usuwanie kontaktów podczas połączenia można przeprowadzać za pomocą funkcji gg_add_notify(), gg_add_notify_ex(), gg_remove_notify() i gg_remove_notify_ex().

Przykład wysłania listy kontaktów składającej się z dwóch wpisów:

uin_t kontakty[] = { 12345, 67890 };
// ...
gg_notify(sesja, kontakty, 2);

Przykład wysłania pustej listy kontaktów, by móc odbierać wiadomości:

gg_notify(sesja, NULL, 0);

Po wysłaniu listy kontaktów otrzymamy informacje o statusie znajomych (za pomocą GG_EVENT_NOTIFY, GG_EVENT_NOTIFY60 lub GG_EVENT_NOTIFY77) oraz informacje dodatkowe o kontaktach (za pomocą GG_EVENT_USER_DATA).

Dokumentacja typów wyliczanych

anonymous enum

Rodzaj kontaktu.

Wartości wyliczeń
GG_USER_NORMAL 

Zwykły kontakt.

GG_USER_BLOCKED 

Zablokowany.

GG_USER_OFFLINE 

Niewidoczny dla kontaktu.

Dokumentacja funkcji

int gg_notify_ex ( struct gg_session sess,
uin_t userlist,
char *  types,
int  count 
)

Wysyła do serwera listę kontaktów.

Funkcja informuje serwer o liście kontaktów, których statusy będą obserwowane lub kontaktów, które bedą blokowane. Dla każdego z count kontaktów tablica userlist zawiera numer, a tablica types rodzaj kontaktu (GG_USER_NORMAL, GG_USER_OFFLINE, GG_USER_BLOCKED).

Listę kontaktów należy zawsze wysyłać po połączeniu, nawet jeśli jest pusta.

Parametry
sessStruktura sesji
userlistWskaźnik do tablicy numerów kontaktów
typesWskaźnik do tablicy rodzajów kontaktów. Jeżeli NULL, wszystkie kontakty są typu GG_USER_NORMAL.
countLiczba kontaktów
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu
int gg_notify ( struct gg_session sess,
uin_t userlist,
int  count 
)

Wysyła do serwera listę kontaktów.

Funkcja jest odpowiednikiem gg_notify_ex(), gdzie wszystkie kontakty są rodzaju GG_USER_NORMAL.

Parametry
sessStruktura sesji
userlistWskaźnik do tablicy numerów kontaktów
countLiczba kontaktów
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu
int gg_add_notify_ex ( struct gg_session sess,
uin_t  uin,
char  type 
)

Dodaje kontakt.

Dodaje do listy kontaktów dany numer w trakcie połączenia. Aby zmienić rodzaj kontaktu (np. z normalnego na zablokowany), należy najpierw usunąć poprzedni rodzaj, ponieważ serwer operuje na maskach bitowych.

Parametry
sessStruktura sesji
uinNumer kontaktu
typeRodzaj kontaktu
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu
int gg_add_notify ( struct gg_session sess,
uin_t  uin 
)

Dodaje kontakt.

Funkcja jest odpowiednikiem gg_add_notify_ex(), gdzie rodzaj wszystkich kontaktów to GG_USER_NORMAL.

Parametry
sessStruktura sesji
uinNumer kontaktu
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu
int gg_remove_notify_ex ( struct gg_session sess,
uin_t  uin,
char  type 
)

Usuwa kontakt.

Usuwa z listy kontaktów dany numer w trakcie połączenia.

Parametry
sessStruktura sesji
uinNumer kontaktu
typeRodzaj kontaktu
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu
int gg_remove_notify ( struct gg_session sess,
uin_t  uin 
)

Usuwa kontakt.

Funkcja jest odpowiednikiem gg_add_notify_ex(), gdzie rodzaj wszystkich kontaktów to GG_USER_NORMAL.

Parametry
sessStruktura sesji
uinNumer kontaktu
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu