OpenMAMA
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 {
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__*/
MAMAExpDLL mama_status mamaQueue_getNativeHandle(mamaQueue queue, void **nativeHandle)
Get the native middleware implementation queue handle (if applicable for the implementation).
MAMAExpDLL mama_status mamaQueue_create(mamaQueue *queue, mamaBridge bridgeImpl)
Create a queue.
MAMAExpDLL mama_status mamaQueue_setClosure(mamaQueue queue, void *closure)
MAMAExpDLL mama_status mamaQueue_setHighWatermark(mamaQueue queue, size_t highWatermark)
Specify a high watermark for events on the queue.
MAMAExpDLL mama_status mamaQueue_setQueueMonitorCallbacks(mamaQueue queue, mamaQueueMonitorCallbacks *queueMonitorCallbacks, void *closure)
Specify a set of callbacks which may be invoked in response to certain conditions arising on the queu...
MAMAExpDLL mama_status mamaQueue_dispatchEvent(mamaQueue queue)
Dispatch a single event from the specified queue.
MAMAExpDLL mama_status mamaQueue_setLowWatermark(mamaQueue queue, size_t lowWatermark)
Set the low water mark for the queue.
MAMAExpDLL mama_status mamaQueue_timedDispatch(mamaQueue queue, uint64_t timeout)
Dispatch messages from the queue.
void(MAMACALLTYPE * mamaQueueEnqueueCB)(mamaQueue queue, void *closure)
Function invoked when an event is enqueued on the queue for which this function was registered...
Definition: queue.h:78
struct mamaQueueMonitorCallbacks_ mamaQueueMonitorCallbacks
callbacks which may be invoked in response to certain conditions on the specified queue being met...
callbacks which may be invoked in response to certain conditions on the specified queue being met...
Definition: queue.h:61
struct mamaBridgeImpl_ * mamaBridge
Definition: types.h:69
MAMAExpDLL mama_status mamaQueue_destroyWait(mamaQueue queue)
Destroy a queue.
MAMAExpDLL mama_status mamaQueue_enableStats(mamaQueue queue)
Enable stats logging on queue.
void(MAMACALLTYPE * mamaQueueLowWatermarkCb)(mamaQueue queue, size_t size, void *closure)
Callback invoked when the queue size returns to the lower limit specified.
Definition: queue.h:53
MAMAExpDLL mama_status mamaQueue_canDestroy(mamaQueue queue)
Check to see if a queue can be destroyed.
MAMAExpDLL mama_status mamaQueue_create_usingNative(mamaQueue *queue, mamaBridge bridgeImpl, void *nativeQueue)
MAMAExpDLL mama_status mamaQueue_enqueueEvent(mamaQueue queue, mamaQueueEventCB callback, void *closure)
Add an user event to a queue.
MAMAExpDLL mama_status mamaQueue_removeEnqueueCallback(mamaQueue queue)
If the specified queue has a registered enqueue callback it is unregistered and the previously suppli...
MAMAExpDLL mama_status mamaQueue_destroyTimedWait(mamaQueue queue, long timeout)
Destroy a queue.
struct mamaQueueImpl_ * mamaQueue
Definition: types.h:107
MAMAExpDLL mama_status mamaQueue_getLowWatermark(mamaQueue queue, size_t *lowWatermark)
Get the value of the low water mark for the specified queue.
mamaQueueHighWatermarkExceededCb onQueueHighWatermarkExceeded
Definition: queue.h:63
struct mamaDispatcherImpl_ * mamaDispatcher
Definition: types.h:108
MAMAExpDLL mama_status mamaDispatcher_create(mamaDispatcher *result, mamaQueue queue)
Create a mamaDispatcher.
void(MAMACALLTYPE * mamaQueueHighWatermarkExceededCb)(mamaQueue queue, size_t size, void *closure)
Callback invoked if an upper size limit has been specified for a queue and that limit has been exceed...
Definition: queue.h:45
MAMAExpDLL mama_status mamaQueue_setEnqueueCallback(mamaQueue queue, mamaQueueEnqueueCB callback, void *closure)
Register the specified callback function to receive a callback each time an event is enqueued on the ...
MAMAExpDLL mama_status mamaQueue_getHighWatermark(mamaQueue queue, size_t *highWatermark)
Get the value of the high water mark for the specified queue.
MAMAExpDLL mama_status mamaQueue_getQueueName(mamaQueue queue, const char **name)
Get the string name identifier for the specified event queue.
MAMAExpDLL mama_status mamaQueue_destroy(mamaQueue queue)
Destroy a queue.
MAMAExpDLL mama_status mamaQueue_setQueueName(mamaQueue queue, const char *name)
Associate a name identifier with the event queue.
mama_status
Definition: status.h:37
MAMAExpDLL mama_status mamaQueue_stopDispatch(mamaQueue queue)
Unblock the queue as soon as possible.
mamaQueueLowWatermarkCb onQueueLowWatermark
Definition: queue.h:64
MAMAExpDLL mama_status mamaQueue_getQueueBridgeName(mamaQueue queue, const char **name)
Get the string name identifier of the bridge for the specified event queue.
void(MAMACALLTYPE * mamaQueueEventCB)(mamaQueue queue, void *closure)
Function invoked when a user added event fires.
Definition: queue.h:85
MAMAExpDLL mama_status mamaDispatcher_destroy(mamaDispatcher dispatcher)
Destroy the dispatcher and stop dispatching events.
MAMAExpDLL mama_status mamaQueue_getClosure(mamaQueue queue, void **closure)
MAMAExpDLL mama_status mamaQueue_dispatch(mamaQueue queue)
Dispatch messages from the queue.
MAMAExpDLL mama_status mamaQueue_getEventCount(mamaQueue queue, size_t *count)
Writes the number of events currently on the specified queue to the address specified by count...
MAMAExpDLL mama_status mamaDispatcher_getQueue(mamaDispatcher dispatcher, mamaQueue *result)
Return the queue associated with the dispatcher.


© 2012 Linux Foundation