OpenMAMA
 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 
62 {
63  mamaQueueHighWatermarkExceededCb onQueueHighWatermarkExceeded;
64  mamaQueueLowWatermarkCb onQueueLowWatermark;
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
120 
129 MAMAExpDLL
130 extern mama_status
132 
141 MAMAExpDLL
142 extern mama_status
144 
155 MAMAExpDLL
156 extern mama_status
157 mamaQueue_destroyTimedWait(mamaQueue queue, long timeout);
158 
187 MAMAExpDLL
188 extern mama_status
190  size_t highWatermark);
191 
199 MAMAExpDLL
200 extern mama_status
202  size_t* highWatermark);
203 
215 MAMAExpDLL
216 extern mama_status
218  size_t lowWatermark);
219 
227 MAMAExpDLL
228 extern mama_status
230  size_t* lowWatermark);
231 
245 MAMAExpDLL
246 extern mama_status
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
319 
328 MAMAExpDLL
329 extern mama_status
330 mamaQueue_timedDispatch (mamaQueue queue, uint64_t timeout);
331 
339 MAMAExpDLL
340 extern mama_status
342 
343 
353 MAMAExpDLL
354 extern mama_status
356  mamaQueueEventCB callback,
357  void* closure);
358 
366 MAMAExpDLL
367 extern mama_status
369 
382 MAMAExpDLL
383 extern mama_status
385  mamaQueueEnqueueCB callback,
386  void* closure);
387 
397 MAMAExpDLL
398 extern mama_status
400 
410 MAMAExpDLL
411 extern mama_status
413  void** nativeHandle);
414 
429 MAMAExpDLL
430 extern mama_status
432 
440 MAMAExpDLL
441 extern mama_status
442 mamaDispatcher_getQueue (mamaDispatcher dispatcher, mamaQueue* result);
443 
450 MAMAExpDLL
451 extern mama_status
453 
454 
463 MAMAExpDLL
464 extern mama_status
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