Main Page
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
queue.h
Go to the documentation of this file.
1
/* $Id$
2
*
3
* OpenMAMA: The open middleware agnostic messaging API
4
* Copyright (C) 2011 NYSE Technologies, Inc.
5
*
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with this library; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19
* 02110-1301 USA
20
*/
21
22
#ifndef MamaQueueH__
23
#define MamaQueueH__
24
25
#include <
mama/mama.h
>
26
#include <
mama/types.h
>
27
#include <
mama/status.h
>
28
29
#if defined(__cplusplus)
30
extern
"C"
{
31
#endif
32
45
typedef
void
(MAMACALLTYPE *mamaQueueHighWatermarkExceededCb) (
mamaQueue
queue,
46
size_t
size
,
47
void
*
closure
);
48
53
typedef
void
(MAMACALLTYPE *mamaQueueLowWatermarkCb) (
mamaQueue
queue,
54
size_t
size
,
55
void
*
closure
);
56
61
typedef
struct
mamaQueueMonitorCallbacks_
62
{
63
mamaQueueHighWatermarkExceededCb
onQueueHighWatermarkExceeded
;
64
mamaQueueLowWatermarkCb
onQueueLowWatermark
;
65
}
mamaQueueMonitorCallbacks
;
66
78
typedef
void
(MAMACALLTYPE *
mamaQueueEnqueueCB
)(
mamaQueue
queue,
void
*
closure
);
79
85
typedef
void
(MAMACALLTYPE *
mamaQueueEventCB
)(
mamaQueue
queue,
void
*
closure
);
86
99
MAMAExpDLL
100
extern
mama_status
101
mamaQueue_create
(
mamaQueue
* queue,
mamaBridge
bridgeImpl);
102
103
104
MAMAExpDLL
105
extern
mama_status
106
mamaQueue_create_usingNative
(
mamaQueue
* queue,
mamaBridge
bridgeImpl,
void
* nativeQueue);
107
117
MAMAExpDLL
118
extern
mama_status
119
mamaQueue_canDestroy
(
mamaQueue
queue);
120
129
MAMAExpDLL
130
extern
mama_status
131
mamaQueue_destroy
(
mamaQueue
queue);
132
141
MAMAExpDLL
142
extern
mama_status
143
mamaQueue_destroyWait
(
mamaQueue
queue);
144
155
MAMAExpDLL
156
extern
mama_status
157
mamaQueue_destroyTimedWait
(
mamaQueue
queue,
long
timeout);
158
187
MAMAExpDLL
188
extern
mama_status
189
mamaQueue_setHighWatermark
(
mamaQueue
queue,
190
size_t
highWatermark);
191
199
MAMAExpDLL
200
extern
mama_status
201
mamaQueue_getHighWatermark
(
mamaQueue
queue,
202
size_t
* highWatermark);
203
215
MAMAExpDLL
216
extern
mama_status
217
mamaQueue_setLowWatermark
(
mamaQueue
queue,
218
size_t
lowWatermark);
219
227
MAMAExpDLL
228
extern
mama_status
229
mamaQueue_getLowWatermark
(
mamaQueue
queue,
230
size_t
* lowWatermark);
231
245
MAMAExpDLL
246
extern
mama_status
247
mamaQueue_setQueueMonitorCallbacks
(
248
mamaQueue
queue,
249
mamaQueueMonitorCallbacks
* queueMonitorCallbacks,
250
void
*
closure
);
251
261
MAMAExpDLL
262
extern
mama_status
263
mamaQueue_getEventCount
(
mamaQueue
queue,
size_t
* count);
264
277
MAMAExpDLL
278
extern
mama_status
279
mamaQueue_setQueueName
(
mamaQueue
queue,
const
char
* name);
280
290
MAMAExpDLL
291
extern
mama_status
292
mamaQueue_getQueueName
(
mamaQueue
queue,
const
char
** name);
293
304
MAMAExpDLL
305
extern
mama_status
306
mamaQueue_getQueueBridgeName
(
mamaQueue
queue,
const
char
** name);
307
308
316
MAMAExpDLL
317
extern
mama_status
318
mamaQueue_dispatch
(
mamaQueue
queue);
319
328
MAMAExpDLL
329
extern
mama_status
330
mamaQueue_timedDispatch
(
mamaQueue
queue, uint64_t timeout);
331
339
MAMAExpDLL
340
extern
mama_status
341
mamaQueue_dispatchEvent
(
mamaQueue
queue);
342
343
353
MAMAExpDLL
354
extern
mama_status
355
mamaQueue_enqueueEvent
(
mamaQueue
queue,
356
mamaQueueEventCB
callback,
357
void
*
closure
);
358
366
MAMAExpDLL
367
extern
mama_status
368
mamaQueue_stopDispatch
(
mamaQueue
queue);
369
382
MAMAExpDLL
383
extern
mama_status
384
mamaQueue_setEnqueueCallback
(
mamaQueue
queue,
385
mamaQueueEnqueueCB
callback,
386
void
*
closure
);
387
397
MAMAExpDLL
398
extern
mama_status
399
mamaQueue_removeEnqueueCallback
(
mamaQueue
queue);
400
410
MAMAExpDLL
411
extern
mama_status
412
mamaQueue_getNativeHandle
(
mamaQueue
queue,
413
void
** nativeHandle);
414
429
MAMAExpDLL
430
extern
mama_status
431
mamaDispatcher_create
(
mamaDispatcher
* result,
mamaQueue
queue);
432
440
MAMAExpDLL
441
extern
mama_status
442
mamaDispatcher_getQueue
(
mamaDispatcher
dispatcher,
mamaQueue
* result);
443
450
MAMAExpDLL
451
extern
mama_status
452
mamaQueue_enableStats
(
mamaQueue
queue);
453
454
463
MAMAExpDLL
464
extern
mama_status
465
mamaDispatcher_destroy
(
mamaDispatcher
dispatcher);
466
467
MAMAExpDLL
468
extern
mama_status
469
mamaQueue_getClosure
(
mamaQueue
queue,
void
**
closure
);
470
471
MAMAExpDLL
472
extern
mama_status
473
mamaQueue_setClosure
(
mamaQueue
queue,
void
*
closure
);
474
#if defined(__cplusplus)
475
}
476
#endif
477
478
#endif
/*MamaQueueH__*/
© 2012 Linux Foundation