libgadu 1.12.2

- Strona główna
- Dodatkowe strony
- Moduły
- Struktury Danych
- Pliki

- Lista plików
- Globalne

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_t * | gg_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

  tvb | Bufor
  length | Liczba 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

  gs | Struktura sesji
  ge | Struktura 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

  tvb | Bufor

void gg_tvbuilder_fail | ( | gg_tvbuilder_t * | tvb,
|  | enum gg_failure_t | failure
| ) |  |

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

Parametry

  tvb | Bufor
  failure | Powód błędu

int gg_tvbuilder_send | ( | gg_tvbuilder_t * | tvb,
|  | int | type
| ) |  |

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

Parametry

  tvb | Bufor
  type | Typ 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

  tvb | Builder.

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

  tvb | Bufor

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

  tvb | Builder.
  length | Oczekiwana liczba bajtów.

void gg_tvbuilder_strip | ( | gg_tvbuilder_t * | tvb,
|  | size_t | length
| ) |  |

Skraca bufor o podaną liczbę bajtów

Parametry

  tvb | Bufor
  length | Ilość bajtów do skrócenia

void gg_tvbuilder_write_uint8 | ( | gg_tvbuilder_t * | tvb,
|  | uint8_t | value
| ) |  |

Zapisuje do bufora liczbę 8-bitową.

Parametry

  tvb | Bufor
  value | Wartość do zapisania

void gg_tvbuilder_write_uint32 | ( | gg_tvbuilder_t * | tvb,
|  | uint32_t | value
| ) |  |

Zapisuje do bufora liczbę 32-bitową.

Parametry

  tvb | Bufor
  value | Wartość do zapisania

void gg_tvbuilder_write_uint64 | ( | gg_tvbuilder_t * | tvb,
|  | uint64_t | value
| ) |  |

Zapisuje do bufora liczbę 64-bitową.

Parametry

  tvb | Bufor
  value | Wartość do zapisania

void gg_tvbuilder_write_packed_uint | ( | gg_tvbuilder_t * | tvb,
|  | uint64_t | value
| ) |  |

Zapisuje do bufora liczbę 1-9 bajtową.

Parametry

  tvb | Bufor
  value | Wartość 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

  tvb | Bufor docelowy
  buffer | Bufor źródłowy
  length | Ilość 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

  tvb | Bufor docelowy
  buffer | Bufor źródłowy
  length | Dł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

  tvb | Bufor
  uin | Identyfikator użytkownika