libgadu  1.12.2
 All Struktury Danych Pliki Funkcje Zmienne Definicje typów Wyliczenia Wartości wyliczeń Definicje Grupay Strony
Struktury danych | Funkcje
Dokumentacja pliku tvbuilder.c

Bufor wspierający budowanie pakietów typu Type-Value(s) Więcej...

Struktury danych

struct  gg_tvbuilder
 

Funkcje

static char * gg_tvbuilder_extend (gg_tvbuilder_t *tvb, size_t length)
 
gg_tvbuilder_tgg_tvbuilder_new (struct gg_session *gs, struct gg_event *ge)
 
void gg_tvbuilder_free (gg_tvbuilder_t *tvb)
 
void gg_tvbuilder_fail (gg_tvbuilder_t *tvb, enum gg_failure_t failure)
 
int gg_tvbuilder_send (gg_tvbuilder_t *tvb, int type)
 
int gg_tvbuilder_is_valid (const gg_tvbuilder_t *tvb)
 
size_t gg_tvbuilder_get_size (const gg_tvbuilder_t *tvb)
 
void gg_tvbuilder_expected_size (gg_tvbuilder_t *tvb, size_t length)
 
void gg_tvbuilder_strip (gg_tvbuilder_t *tvb, size_t length)
 
void gg_tvbuilder_write_uint8 (gg_tvbuilder_t *tvb, uint8_t value)
 
void gg_tvbuilder_write_uint32 (gg_tvbuilder_t *tvb, uint32_t value)
 
void gg_tvbuilder_write_uint64 (gg_tvbuilder_t *tvb, uint64_t value)
 
void gg_tvbuilder_write_packed_uint (gg_tvbuilder_t *tvb, uint64_t value)
 
void gg_tvbuilder_write_buff (gg_tvbuilder_t *tvb, const char *buffer, size_t length)
 
void gg_tvbuilder_write_str (gg_tvbuilder_t *tvb, const char *buffer, ssize_t length)
 
void gg_tvbuilder_write_uin (gg_tvbuilder_t *tvb, uin_t uin)
 

Opis szczegółowy

Bufor wspierający budowanie pakietów typu Type-Value(s)

Dokumentacja funkcji

static char * gg_tvbuilder_extend ( gg_tvbuilder_t tvb,
size_t  length 
)
static

Poszerza bufor o podaną liczbę bajtów.

Parametry
tvbBufor
lengthLiczba bajtów do dodania
Zwraca
Początek nowo dodanego bloku bufora
gg_tvbuilder_t* gg_tvbuilder_new ( struct gg_session gs,
struct gg_event ge 
)

Tworzy nową instancję bufora.

Parametry
gsStruktura sesji
geStruktura zdarzenia
Zwraca
Zaalokowany bufor - musi być zwolniony przez gg_tvbuilder_free, gg_tvbuilder_fail lub gg_tvbuilder_send.
void gg_tvbuilder_free ( gg_tvbuilder_t tvb)

Zwalnia bufor.

Parametry
tvbBufor
void gg_tvbuilder_fail ( gg_tvbuilder_t tvb,
enum gg_failure_t  failure 
)

Zwalnia bufor i generuje błąd połączenia.

Parametry
tvbBufor
failurePowód błędu
int gg_tvbuilder_send ( gg_tvbuilder_t tvb,
int  type 
)

Próbuje wysłać zawartość bufora i go zwalnia.

Parametry
tvbBufor
typeTyp pakietu
Zwraca
1 jeśli się powiodło, 0 w p.p.
int gg_tvbuilder_is_valid ( const gg_tvbuilder_t tvb)

Sprawdza, czy wszystkie zapisy do bufora były prawidłowe.

Parametry
tvbBuilder.
Zwraca
Wartość różna od 0, jeżeli wszystkie zapisy były prawidłowe.
size_t gg_tvbuilder_get_size ( const gg_tvbuilder_t tvb)

Sprawdza rozmiar bufora.

Parametry
tvbBufor
Zwraca
Rozmiar bufora
void gg_tvbuilder_expected_size ( gg_tvbuilder_t tvb,
size_t  length 
)

Określa oczekiwaną liczbę bajtów, o którą zostanie rozszerzony bufor.

Funkcja powoduje jedynie wzrost wydajności poprzez zmniejszenie ilości realokacji.

Parametry
tvbBuilder.
lengthOczekiwana liczba bajtów.
void gg_tvbuilder_strip ( gg_tvbuilder_t tvb,
size_t  length 
)

Skraca bufor o podaną liczbę bajtów

Parametry
tvbBufor
lengthIlość bajtów do skrócenia
void gg_tvbuilder_write_uint8 ( gg_tvbuilder_t tvb,
uint8_t  value 
)

Zapisuje do bufora liczbę 8-bitową.

Parametry
tvbBufor
valueWartość do zapisania
void gg_tvbuilder_write_uint32 ( gg_tvbuilder_t tvb,
uint32_t  value 
)

Zapisuje do bufora liczbę 32-bitową.

Parametry
tvbBufor
valueWartość do zapisania
void gg_tvbuilder_write_uint64 ( gg_tvbuilder_t tvb,
uint64_t  value 
)

Zapisuje do bufora liczbę 64-bitową.

Parametry
tvbBufor
valueWartość do zapisania
void gg_tvbuilder_write_packed_uint ( gg_tvbuilder_t tvb,
uint64_t  value 
)

Zapisuje do bufora liczbę 1-9 bajtową.

Parametry
tvbBufor
valueWartość do zapisania
Zobacz również
gg_tvbuff_read_packed_uint
void gg_tvbuilder_write_buff ( gg_tvbuilder_t tvb,
const char *  buffer,
size_t  length 
)

Zapisuje do bufora zawartość innego bufora.

Parametry
tvbBufor docelowy
bufferBufor źródłowy
lengthIlość danych do skopiowania
void gg_tvbuilder_write_str ( gg_tvbuilder_t tvb,
const char *  buffer,
ssize_t  length 
)

Zapisuje do bufora ciąg tekstowy (mogący zawierać znaki \0).

Parametry
tvbBufor docelowy
bufferBufor źródłowy
lengthDługość tekstu, lub -1, jeżeli ma zostać wyliczona automatycznie (do pierwszego znaku \0)
void gg_tvbuilder_write_uin ( gg_tvbuilder_t tvb,
uin_t  uin 
)

Zapisuje do bufora identyfikator użytkownika.

Parametry
tvbBufor
uinIdentyfikator użytkownika