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


© 2012 Linux Foundation