aboutsummaryrefslogtreecommitdiff
path: root/doc/Manual/ru/BH_Queue.pod
blob: 4aeb9e30598deca01803a3a2798ebb05bc48cf19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
=encoding UTF-8


=head1 НАИМЕНОВАНИЕ

BH_Queue - контейнер очереди


=head1 СИНТАКСИС

 #include <BH/Queue.h>
 
 cc prog.c -o prog -lbh


=head1 ОПИСАНИЕ

Модуль BH_Queue предоставляет реализацию контейнера очереди, который позволяет
добавлять элементы в конец и извлекать их из начала. Очередь основана на
динамическом массиве, что обеспечивает эффективное использование памяти и 
быстрый доступ к элементам.


=head1 API ВЫЗОВЫ


=head2 BH_QueueNew

 BH_Queue *BH_QueueNew(void);

Создаёт очередь.

В случае успеха функция возвращает указатель на новый объект BH_Queue,
или NULL в случае ошибки.


=head2 BH_QueueFree

 void BH_QueueFree(BH_Queue *queue);

Уничтожает очередь.


=head2 BH_QueueClear

 void BH_QueueClear(BH_Queue *queue);

Очищает очередь.


=head2 BH_QueueReserve

 int BH_QueueReserve(BH_Queue *queue, 
                     size_t size);

Резервирует место как минимум для I<size> элементов.

Вызов этой функции делает существующие итераторы недействительными.

В случае успеха функция возвращает 0, в случае ошибки - код ошибки.


=head2 BH_QueueInsert

 int BH_QueueInsert(BH_Queue *queue, 
                    void *value);

Вставляет элемент I<value>.

Вызов этой функции делает существующие итераторы недействительными.

В случае успеха функция возвращает 0, в случае ошибки - код ошибки.


=head2 BH_QueueRemove

 void BH_QueueRemove(BH_Queue *queue);

Удаляет первый элемент из очереди.

Вызов этой функции делает существующие итераторы недействительными.


=head2 BH_QueueFront

 int BH_QueueFront(BH_Queue *queue, 
                   void **value);

Возвращает первый элемент очереди.

Параметр I<value> возвращает значение элемента.

В случае успеха функция возвращает 0, в случае ошибки - код ошибки.


=head2 BH_QueueEmpty

 int BH_QueueEmpty(BH_Queue *queue);

Проверяет, является ли очередь пустой.


=head2 BH_QueueSize

 size_t BH_QueueSize(BH_Queue *queue);

Возвращает количество элементов.


=head2 BH_QueueCapacity

 size_t BH_QueueCapacity(BH_Queue *queue);

Возвращает ёмкость.


=head2 BH_QueueIterNext

 void *BH_QueueIterNext(BH_Queue *queue, void *iter);

Возвращает итератор на следующий элемент.

Опциональный параметр I<iter> принимает итератор на текущий элемент.

В случае успеха функция возвращает итератор или NULL.


=head2 BH_QueueIterValue

 void *BH_QueueIterValue(void *iter);

Возвращает значение элемента, указываемое итератором I<iter>.


=head1 СМ. ТАКЖЕ

L<BH>