1blob.h(3)                  Library Functions Manual                  blob.h(3)
2
3
4

NAME

6       blob.h - Блобы
7
8

SYNOPSIS

10       #include 'bee2/defs.h'
11
12
13   Определения типов
14       typedef void * blob_t
15
16   Функции
17       blob_t blobCreate (size_t size)
18           Создание блоба
19       bool_t blobIsValid (const blob_t blob)
20           Корректный блоб?
21       blob_t blobResize (blob_t blob, size_t size)
22           Изменение размера блоба
23       void blobWipe (blob_t blob)
24           Очистка блоба
25       void blobClose (blob_t blob)
26           Очистка и освобождение блоба
27       size_t blobSize (const blob_t blob)
28           Размер блоба
29       blob_t blobCopy (blob_t dest, const blob_t src)
30           Копирование блоба
31       bool_t blobEq (const blob_t blob1, const blob_t blob2)
32           Совпадение блобов
33       int blobCmp (const blob_t blob1, const blob_t blob2)
34           Сравнение блобов
35

Подробное описание

37       Блоб -- объект в памяти определенного размера. В функциях работы с
38       блобами используются их дескрипторы -- 'умные' указатели. С
39       дескрипторами можно работать как с обычными указателями, т.е.
40       использовать их в функциях типа memcpy, memset. Дополнительно по
41       указателю можно определить размер блоба.
42
43       Реализация работы с блобами может быть платформенно-зависимой.
44
45       Реализация должна гарантировать защиту содержимого блобов от утечек,
46       например, через файл подкачки. Поэтому в блобах рекомендуется размещать
47       ключи и другие критические объекты.
48
49       Предусловие
50           В функциях работы с блобами дескрипторы входных блобов корректны.
51

Типы

53   typedef void* blob_t
54       Дескриптор блоба.
55

Функции

57   void blobClose (blob_t blob)
58       Выполняется очистка и освобождение блоба blob.
59
60       Аргументы
61           blob блоб
62
63   int blobCmp (const blob_t blob1, const blob_t blob2)
64       Блоб blob1 сравнивается с блобом blob2: a < b, если size(a) < size(b)
65       или size(a) == size(b) и value(a) < value(b). Условие value(a) <
66       value(b) означает, что имеется i < size(a) т.ч. value(a)[0..i - 1] ==
67       value(b)[0..i - 1] и value(a)[i] < value(b)[i].
68
69       Возвращает
70           0, если блобы совпадают, < 0, если blob1 меньше blob2,
71
72               0, если blob1 больше blob2.
73
74       Аргументы
75           blob1 первый блоб
76           blob2 второй блоб
77
78   blob_t blobCopy (blob_t dest, const blob_t src)
79       Блоб src копируется в блоб dest.
80
81       Возвращает
82           Дескриптор блоба-приемника. Дескриптор совпадает c dest при
83           совпадении размеров dest и src. Нулевой дескриптор возвращается при
84           нулевом src и при нехватке памяти.
85
86       Прим.
87           При нулевом dest блоб-приемник создается, при ненулевом --
88           настраивается размер блоба.
89
90       Аргументы
91           dest назначение
92           src источник
93
94   blob_t blobCreate (size_t size)
95       Создается блоб размера size.
96
97       Возвращает
98           Дескриптор созданного блоба. Нулевой дескриптор возвращается при
99           нулевом size и при нехватке памяти.
100
101       Постусловие
102           Выходной блоб корректен.
103
104       Прим.
105           При создании блоба все его октеты обнуляются.
106
107       Аргументы
108           size размер
109
110   bool_t blobEq (const blob_t blob1, const blob_t blob2)
111       Проверяется совпадение блобов blob1 и blob2: a == b, если size(a) ==
112       size(b) и value(a) < value(b).
113
114       Возвращает
115           Признак совпадения.
116
117       Аргументы
118           blob1 первый блоб
119           blob2 второй блоб
120
121   bool_t blobIsValid (const blob_t blob)
122       Проверяется корректность блоба blob.
123
124       Возвращает
125           Признак корректности.
126
127       Прим.
128           Блоб с нулевым дескриптором считается корректным.
129
130       Аргументы
131           blob блоб
132
133   blob_t blobResize (blob_t blob, size_t size)
134       Размер блоба blob изменяется на size с сохранением содержимого.
135
136       Возвращает
137           Дескриптор созданного блоба. Нулевой дескриптор возвращается при
138           нулевом size и при нехватке памяти.
139
140       Прим.
141           Если блоб еще не создан, то он создается.
142
143           При ошибках выделения памяти blob остается действительным.
144
145           Если размер блоба не меняется, то и дескриптор не меняется.
146
147           Вызов с нулевым size эквивалентен вызову blobClose().
148
149           При увеличении размера в блоб дописываются нулевые октеты.
150
151           При уменьшении размера ненужные октеты отбрасываются, но первые
152           size октетов сохраняются.
153
154       Аргументы
155           blob блоб
156           size новый размер
157
158   size_t blobSize (const blob_t blob)
159       Определяется размер блоба blob.
160
161       Возвращает
162           Размер блоба.
163
164       Аргументы
165           blob блоб
166
167   void blobWipe (blob_t blob)
168       Выполняется очистка блоба blob.
169
170       Аргументы
171           blob блоб
172

Автор

174       Автоматически создано Doxygen для Библиотека Bee2 из исходного текста.
175
176
177
178Библиотека Bee2                 Пт 23 Июн 2023                       blob.h(3)
Impressum