libgadu  1.12.1
Definicje typów | Funkcje
Dokumentacja pliku tvbuff.h

Definicje typów

typedef struct gg_tvbuff gg_tvbuff_t

Funkcje

gg_tvbuff_tgg_tvbuff_new (const char *buffer, size_t length)
int gg_tvbuff_close (gg_tvbuff_t *tvb)
int gg_tvbuff_is_valid (const gg_tvbuff_t *tvb)
size_t gg_tvbuff_get_remaining (const gg_tvbuff_t *tvb)
int gg_tvbuff_have_remaining (gg_tvbuff_t *tvb, size_t length)
void gg_tvbuff_skip (gg_tvbuff_t *tvb, size_t amount)
void gg_tvbuff_rewind (gg_tvbuff_t *tvb, size_t amount)
int gg_tvbuff_match (gg_tvbuff_t *tvb, uint8_t value)
uint8_t gg_tvbuff_read_uint8 (gg_tvbuff_t *tvb)
uint32_t gg_tvbuff_read_uint32 (gg_tvbuff_t *tvb)
uint64_t gg_tvbuff_read_uint64 (gg_tvbuff_t *tvb)
uint64_t gg_tvbuff_read_packed_uint (gg_tvbuff_t *tvb)
const char * gg_tvbuff_read_buff (gg_tvbuff_t *tvb, size_t length)
void gg_tvbuff_read_buff_cpy (gg_tvbuff_t *tvb, char *buffer, size_t length)
const char * gg_tvbuff_read_str (gg_tvbuff_t *tvb, size_t *length)
void gg_tvbuff_read_str_dup (gg_tvbuff_t *tvb, char **dst)
uin_t gg_tvbuff_read_uin (gg_tvbuff_t *tvb)
void gg_tvbuff_expected_uint8 (gg_tvbuff_t *tvb, uint8_t value)
void gg_tvbuff_expected_uint32 (gg_tvbuff_t *tvb, uint32_t value)
void gg_tvbuff_expected_eob (const gg_tvbuff_t *tvb)

Dokumentacja definicji typów

typedef struct gg_tvbuff gg_tvbuff_t

Dokumentacja funkcji

gg_tvbuff_t* gg_tvbuff_new ( const char *  buffer,
size_t  length 
)

Tworzy nową instancję bufora.

Parametry:
bufferBufor źródłowy; nie może być modyfikowany (w szczególności zwalniany) przez cały okres korzystania z jego opakowanej wersji.
lengthDługość bufora źródłowego.
Zwraca:
Zaalokowane opakowanie bufora - musi być zwolnione przez free lub gg_tvbuff_close.
int gg_tvbuff_close ( gg_tvbuff_t tvb)

Zwalnia opakowanie bufora. Przed zwolnieniem sprawdza, czy przeczytano go do końca.

Parametry:
tvbBufor.
Zwraca:
Wartość różna od 0, jeżeli bufor tuż przed zwolnieniem był oznaczony jako prawidłowy
int gg_tvbuff_is_valid ( const gg_tvbuff_t tvb)

Sprawdza, czy wszystkie odczyty z bufora były prawidłowe.

Parametry:
tvbBufor.
Zwraca:
Wartość różna od 0, jeżeli wszystkie odczyty były prawidłowe.
size_t gg_tvbuff_get_remaining ( const gg_tvbuff_t tvb)

Zwraca pozostałą do odczytania liczbę bajtów w buforze.

Parametry:
tvbBufor.
Zwraca:
Pozostała liczba bajtów do odczytania.
int gg_tvbuff_have_remaining ( gg_tvbuff_t tvb,
size_t  length 
)

Sprawdza, czy w buforze pozostała określona liczba bajtów do odczytania. Jeżeli nie została - oznacza bufor jako nieprawidłowy.

Parametry:
tvbBufor.
lengthIlość bajtów do odczytania.
Zwraca:
Wartość różna od 0, jeżeli można odczytać podaną liczbę bajtów.
void gg_tvbuff_skip ( gg_tvbuff_t tvb,
size_t  amount 
)

Pomija określoną liczbę bajtów w buforze. Jeżeli w wyniku ich pominięcia wyjdzie poza zakres, oznacza bufor jako nieprawidłowy.

Parametry:
tvbBufor
amountLiczba bajtów do pominięcia
void gg_tvbuff_rewind ( gg_tvbuff_t tvb,
size_t  amount 
)

Cofa się o określoną liczbę bajtów w buforze. Jeżeli cofnie przed pierwszy znak, oznacza bufor jako nieprawidłowy.

Parametry:
tvbBufor
amountLiczba bajtów do cofnięcia
int gg_tvbuff_match ( gg_tvbuff_t tvb,
uint8_t  value 
)

Sprawdza, czy pod aktualną pozycją w buforze występuje podana wartość. Jeżeli tak, przesuwa aktualną pozycję do przodu.

Parametry:
tvbBufor.
valueWartość do sprawdzenia
Zwraca:
Wartość różna od 0, jeżeli znaleziono podaną wartość.
uint8_t gg_tvbuff_read_uint8 ( gg_tvbuff_t tvb)

Odczytuje z bufora liczbę 8-bitową.

Parametry:
tvbBufor
Zwraca:
Odczytana liczba
uint32_t gg_tvbuff_read_uint32 ( gg_tvbuff_t tvb)

Odczytuje z bufora liczbę 32-bitową.

Parametry:
tvbBufor
Zwraca:
Odczytana liczba
uint64_t gg_tvbuff_read_uint64 ( gg_tvbuff_t tvb)

Odczytuje z bufora liczbę 64-bitową.

Parametry:
tvbBufor
Zwraca:
Odczytana liczba

Odczytuje z bufora skompresowaną liczbę całkowitą. Liczba taka może być zapisana w buforze na 1-9 bajtach, w zależności od jej wartości.

Skompresowana liczba jest zapisywana od najmłodszego bajtu do najstarszego niezerowego. W każdym bajcie zapisuje się bit sterujący (równy 0, jeżeli jest to ostatni bajt do przeczytania, lub 1 w p.p.) oraz 7 kolejnych bitów z kompresowanej liczby.

Przykładowo, liczby mniejsze od 128 (1000.0000b) są zapisywane dokładnie tak, jak uint8_t; a np. 12345 (0011.0000.0011.1001b) zostanie zapisana jako 0x60B9 (0110.0000.1011.1001b).

Parametry:
tvbBufor.
Zwraca:
Odczytana liczba.
const char* gg_tvbuff_read_buff ( gg_tvbuff_t tvb,
size_t  length 
)

Odczytuje z bufora podciąg bez kopiowania danych.

Parametry:
tvbBufor źródłowy
lengthIlość bajtów do odczytania
Zwraca:
Wskaźnik na początek odczytanych danych, lub NULL w przypadku niepowodzenia
void gg_tvbuff_read_buff_cpy ( gg_tvbuff_t tvb,
char *  buffer,
size_t  length 
)

Odczytuje z bufora podciąg kopiując go do nowego obszaru pamięci.

Parametry:
tvbBufor źródłowy
bufferBufor docelowy
lengthIlość bajtów do odczytania
const char* gg_tvbuff_read_str ( gg_tvbuff_t tvb,
size_t *  length 
)

Odczytuje z bufora ciąg tekstowy (mogący zawierać dowolne znaki, również \0) bez kopiowania danych.

Parametry:
tvbBufor źródłowy
lengthZmienna, do której zostanie zapisana długość odczytanego ciągu
Zwraca:
Wskaźnik na początek odczytanych danych, lub NULL w przypadku niepowodzenia
void gg_tvbuff_read_str_dup ( gg_tvbuff_t tvb,
char **  dst 
)

Odczytuje z bufora ciąg tekstowy (mogący zawierać dowolne znaki, również \0) kopiując go do nowego obszaru pamięci. Zwrócony ciąg będzie zawsze zakończony znakiem \0.

Parametry:
tvbBufor źródłowy
dstZmienna, do której zostanie zapisany wskaźnik na odczytany ciąg. Po użyciu, blok ten powinien zostać zwolniony za pomocą free()
Zwraca:
Wskaźnik na początek odczytanych danych, lub NULL w przypadku niepowodzenia

Odczytuje z bufora identyfikator użytkownika.

Parametry:
tvbBufor
Zwraca:
Identyfikator użytkownika, lub 0 w przypadku niepowodzenia
void gg_tvbuff_expected_uint8 ( gg_tvbuff_t tvb,
uint8_t  value 
)

Odczytuje z bufora liczbę 8-bitową i porównuje z podaną. Jeżeli te się różnią, zostaje wygenerowane ostrzeżenie.

Parametry:
tvbBufor
valueOczekiwana wartość
void gg_tvbuff_expected_uint32 ( gg_tvbuff_t tvb,
uint32_t  value 
)

Odczytuje z bufora liczbę 32-bitową i porównuje z podaną. Jeżeli te się różnią, zostaje wygenerowane ostrzeżenie.

Parametry:
tvbBufor
valueOczekiwana wartość
void gg_tvbuff_expected_eob ( const gg_tvbuff_t tvb)

Oczekuje końca bufora. Jeżeli w buforze są jeszcze dane do przeczytania, generuje ostrzeżenie.

Parametry:
tvbBufor.
 All Struktury Danych Pliki Funkcje Zmienne Definicje typów Wyliczenia Wartości wyliczeń Definicje