OpenMAMA
transport.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 MamaTransportH__
23 #define MamaTransportH__
24 
25 #if defined(__cplusplus)
26 extern "C" {
27 #endif
28 
29 #include "mama/types.h"
30 #include "mama/status.h"
31 #include "mama/subscription.h"
32 #include "mama/msg.h"
33 #include "mama/symbolmap.h"
34 #include "mama/quality.h"
35 
68 typedef enum
69 {
83 
91 typedef enum
92 {
96 
97 
107 typedef enum
108 {
113 } tportLbScheme;
114 
133 typedef void (MAMACALLTYPE *mamaTransportCB)(mamaTransport tport,
135  short cause,
136  const void* platformInfo,
137  void *closure);
138 
157 typedef void (MAMACALLTYPE *mamaTransportTopicCB)(mamaTransport tport,
158  mamaTransportTopicEvent event,
159  const char* topic,
160  const void* platformInfo,
161  void *closure);
162 
163 
164 
165 typedef void (*mamaTransportLbInitialCB)(int numTransports,
166  int* transportIndex);
167 
168 typedef void (*mamaTransportLbCB)(int curTransportIndex,
169  int numTransports,
170  const char* source,
171  const char* symbol,
172  int* nextTransportIndex);
173 
174 
178 MAMAExpDLL
179 extern const char*
180 mamaTransportEvent_toString (mamaTransportEvent event);
181 
186 MAMAExpDLL
187 extern mama_status
189  mamaTransportCB callback,
190  void* closure);
198 MAMAExpDLL
199 extern mama_status
201  uint32_t highWater,
202  uint32_t lowWater);
203 
208 MAMAExpDLL
209 extern mama_status
211  mamaTransportTopicCB callback,
212  void* closure);
222 MAMAExpDLL
223 extern mama_status
225 
243 MAMAExpDLL
244 extern mama_status
246  const char* name,
247  mamaBridge bridgeImpl);
248 
256 MAMAExpDLL
257 extern mama_status
259  const char* name);
260 
261 
269 MAMAExpDLL
270 extern mama_status
272  const char** result);
273 
274 MAMAExpDLL
275 const char *
277 
284 typedef enum
285 {
290 
301 MAMAExpDLL
302 extern mama_status
304  mamaThrottleInstance instance,
305  double *result);
306 
313 MAMAExpDLL
314 extern void
316  uint8_t disable);
317 
325 MAMAExpDLL
326 extern mama_status
328  mamaThrottleInstance instance,
329  double outboundThrottle);
330 
339 MAMAExpDLL
340 extern void
342  mamaSymbolMapFunc mapFunc,
343  void* closure);
344 
351 MAMAExpDLL
352 extern mamaSymbolMapFunc
354 
361 MAMAExpDLL
362 extern void*
364 
374 MAMAExpDLL
375 extern mama_status
376 mamaTransport_setDescription (mamaTransport transport, const char* description);
377 
386 MAMAExpDLL
387 extern mama_status
388 mamaTransport_getDescription (mamaTransport transport, const char** description);
389 
406 MAMAExpDLL
407 extern mama_status
409  mamaTransport transport,
410  int invokeQualityForAllSubscs);
411 
420 MAMAExpDLL
421 extern mama_status
423  const mamaTransport transport,
424  int* invokeQualityForAllSubscs);
425 
436 MAMAExpDLL
437 extern mama_status
438 mamaTransport_getQuality (const mamaTransport transport,
439  mamaQuality* quality);
440 
446 MAMAExpDLL
447 extern mama_status
449 
460 MAMAExpDLL
461 extern mama_status
463  mamaConnection* result,
464  const char* ipAddress,
465  uint16_t port);
466 
472 MAMAExpDLL
473 extern mama_status
475  mamaConnection** result,
476  uint32_t* len);
477 
478 
484 MAMAExpDLL
485 extern mama_status
487  const char* topic,
488  mamaConnection** result,
489  uint32_t* len);
493 MAMAExpDLL
494 extern mama_status
496  mamaConnection* result,
497  uint32_t len);
498 
504 MAMAExpDLL
505 extern mama_status
507  mamaServerConnection** result,
508  uint32_t* len);
509 
513 MAMAExpDLL
514 extern mama_status
516  mamaServerConnection* result,
517  uint32_t len);
518 
523 MAMAExpDLL
524 extern mama_status
526  mamaTransportLbInitialCB callback);
527 
534 MAMAExpDLL
535 extern mama_status
537  mamaTransportLbCB callback);
538 
544 MAMAExpDLL
545 extern mama_status
547 
554 MAMAExpDLL
555 extern mama_status
557 
558 MAMAExpDLL
559 extern mama_status
561  int deactivate);
562 
563 
564 MAMAExpDLL
565 extern int
567 
577 MAMAExpDLL
578 extern mama_status
580  int index,
581  void** nativeTport);
582 
593 MAMAExpDLL
594 extern mama_status
596  int index,
597  void** nativeTportNamingCtx);
598 
599 MAMAExpDLL
600 extern mamaStatsCollector
602 
609 MAMAExpDLL
610 extern mama_status
612  void** closure);
613 
620 MAMAExpDLL
621 extern mama_status
623  void* closure);
624 
625 #if defined(__cplusplus)
626 }
627 #endif
628 
629 #endif /* MamaTransportH__ */
MAMAExpDLL mama_status mamaTransport_getNativeTransportNamingCtx(mamaTransport transport, int index, void **nativeTportNamingCtx)
Return a pointer to the underlying native naming context the transport is using.
Definition: transport.h:112
Definition: transport.h:74
MAMAExpDLL mamaSymbolMapFunc mamaTransport_getSymbolMapFunc(mamaTransport transport)
Return the symbol mapping function for a mamaTransport.
struct mamaConnectionImpl_ * mamaConnection
Definition: types.h:120
MAMAExpDLL void * mamaTransport_getSymbolMapFuncClosure(mamaTransport transport)
Return the symbol mapping function closure for a mamaTransport.
struct mamaServerConnectionImpl_ * mamaServerConnection
Definition: types.h:121
MAMAExpDLL mama_status mamaTransport_getAllConnections(mamaTransport transport, mamaConnection **result, uint32_t *len)
Return a list of all clients connected to this transport.
MAMAExpDLL const char * mamaTransport_getMiddleware(mamaTransport transport)
Definition: transport.h:110
mamaThrottleInstance
Enum to determine to which throttle a call applies.
Definition: transport.h:284
Definition: transport.h:78
const char mamaFtState void * closure
Definition: ft.h:54
MAMAExpDLL mama_status mamaTransport_setName(mamaTransport transport, const char *name)
Set the transport name.
Definition: transport.h:288
MAMAExpDLL mama_status mamaTransport_setOutboundThrottle(mamaTransport transport, mamaThrottleInstance instance, double outboundThrottle)
Set the throttle rate.
MAMAExpDLL mama_status mamaTransport_setInvokeQualityForAllSubscs(mamaTransport transport, int invokeQualityForAllSubscs)
Set whether to invoke the quality callback for all subscriptions whenever a data quality event occurs...
MAMAExpDLL mama_status mamaTransport_setWriteQueueWatermarks(mamaTransport transport, uint32_t highWater, uint32_t lowWater)
Set the transport write queue high and low water mark values.
Definition: transport.h:287
mamaSource source
Definition: sourceman.h:38
Definition: transport.h:111
MAMAExpDLL mama_status mamaTransport_setTransportCallback(mamaTransport transport, mamaTransportCB callback, void *closure)
Set the transport callback.
struct mamaBridgeImpl_ * mamaBridge
Definition: types.h:69
MAMAExpDLL mama_status mamaTransport_getInvokeQualityForAllSubscs(const mamaTransport transport, int *invokeQualityForAllSubscs)
Get whether the transport has been set to invoke the quality callback for all subscriptions whenever ...
MAMAExpDLL mama_status mamaTransport_getNativeTransport(mamaTransport transport, int index, void **nativeTport)
Return a pointer tothe underlying native transport.
MAMAExpDLL mama_status mamaTransport_freeAllServerConnections(mamaTransport transport, mamaServerConnection *result, uint32_t len)
Free resources allocated by mamaTransport_getAllServerConnections().
void(* mamaTransportLbCB)(int curTransportIndex, int numTransports, const char *source, const char *symbol, int *nextTransportIndex)
Definition: transport.h:168
MAMAExpDLL mama_status mamaTransport_setDescription(mamaTransport transport, const char *description)
Set the description for this transport.
Definition: transport.h:94
void(MAMACALLTYPE * mamaTransportCB)(mamaTransport tport, mamaTransportEvent, short cause, const void *platformInfo, void *closure)
Invoked when transport disconnects, reconnects, or has a data quality event.
Definition: transport.h:133
Definition: transport.h:93
MAMAExpDLL void mamaTransport_disableRefresh(mamaTransport transport, uint8_t disable)
Disable Refreshing.
MAMAExpDLL mama_status mamaTransport_getOutboundThrottle(mamaTransport transport, mamaThrottleInstance instance, double *result)
Get the outbound throttle rate.
mamaTransportTopicEvent
MAMA passes this enumeration as a parameter to the mamaTransportTopicCB if a client installs one...
Definition: transport.h:91
Definition: transport.h:77
Definition: transport.h:109
MAMAExpDLL mama_status mamaTransport_getClosure(mamaTransport transport, void **closure)
Return the closure.
Definition: transport.h:73
Definition: transport.h:76
struct mamaStatsCollectorImpl_ * mamaStatsCollector
Definition: types.h:125
MAMAExpDLL mama_status mamaTransport_getQuality(const mamaTransport transport, mamaQuality *quality)
Get the quality of data for the transport.
MAMAExpDLL mama_status mamaTransport_getName(mamaTransport transport, const char **result)
Get the transport name.
void(* mamaTransportLbInitialCB)(int numTransports, int *transportIndex)
Definition: transport.h:165
MAMAExpDLL mama_status mamaTransport_allocate(mamaTransport *result)
Allocate a transport structure.
MAMAExpDLL mama_status mamaTransport_setClosure(mamaTransport transport, void *closure)
Set a closure.
MAMAExpDLL mama_status mamaTransport_requestConflation(mamaTransport transport)
Request that publishers conflate incoming messages.
Definition: transport.h:286
MAMAExpDLL mama_status mamaTransport_setTransportTopicCallback(mamaTransport transport, mamaTransportTopicCB callback, void *closure)
Set the transport topic callback.
void(MAMACALLTYPE * mamaTransportTopicCB)(mamaTransport tport, mamaTransportTopicEvent event, const char *topic, const void *platformInfo, void *closure)
Invoked when topic is subscribed ot unsubcribed on that transport.
Definition: transport.h:157
Definition: transport.h:71
mamaTransportEvent
MAMA passes this enumeration as a parameter to the mamaTransportCB if a client installs one...
Definition: transport.h:68
tportLbScheme
Enum to represent the different load balancing schemes available.
Definition: transport.h:107
MAMAExpDLL void mamaTransport_setSymbolMapFunc(mamaTransport transport, mamaSymbolMapFunc mapFunc, void *closure)
Set the symbol mapping function for a mamaTransport.
MAMAExpDLL mama_status mamaTransport_setDeactivateSubscriptionOnError(mamaTransport transport, int deactivate)
MAMAExpDLL const char * mamaTransportEvent_toString(mamaTransportEvent event)
Return a text description of the transport event.
MAMAExpDLL mama_status mamaTransport_requestEndConflation(mamaTransport transport)
Request that publishers stop conflating incoming messages for this transport.
MAMAExpDLL mama_status mamaTransport_findConnection(mamaTransport transport, mamaConnection *result, const char *ipAddress, uint16_t port)
Find a connection with specified IP Address and Port.
MAMAExpDLL mama_status mamaTransport_getAllConnectionsForTopic(mamaTransport transport, const char *topic, mamaConnection **result, uint32_t *len)
Return a list of all clients connected to this transport for a topic.
MAMAExpDLL int mamaTransport_getDeactivateSubscriptionOnError(mamaTransport transport)
MAMAExpDLL mama_status mamaTransport_getAllServerConnections(mamaTransport transport, mamaServerConnection **result, uint32_t *len)
Return a list of all servers connected to this transport.
mama_status
Definition: status.h:37
Definition: transport.h:72
MAMAExpDLL mama_status mamaTransport_getDescription(mamaTransport transport, const char **description)
Get the description attribute for the specified transport.
Definition: transport.h:75
typedef void(MAMACALLTYPE *mamaFtMemberOnFtStateChangeCb)(mamaFtMember ftMember
Callback function type for MAMA fault tolerance events.
struct mamaTransportImpl_ * mamaTransport
Definition: types.h:98
MAMAExpDLL mama_status mamaTransport_setLbCallback(mamaTransport transport, mamaTransportLbCB callback)
Set the callback which will allocate the next member of the load balancing group to use...
MAMAExpDLL mama_status mamaTransport_destroy(mamaTransport transport)
Destroy the transport.
MAMAExpDLL mama_status mamaTransport_setLbInitialCallback(mamaTransport transport, mamaTransportLbInitialCB callback)
Set the callback which will decide which member of the load balancing group to use initially...
MAMAExpDLL mamaStatsCollector mamaTransport_getStatsCollector(mamaTransport transport)
MAMAExpDLL mama_status mamaTransport_create(mamaTransport transport, const char *name, mamaBridge bridgeImpl)
Create a previously allocated transport.
enum mamaQuality_ mamaQuality
MAMAExpDLL mama_status mamaTransport_freeAllConnections(mamaTransport transport, mamaConnection *result, uint32_t len)
Free resources allocated by mamaTransport_getAllConnections().
Definition: transport.h:70
int(MAMACALLTYPE * mamaSymbolMapFunc)(void *closure, char *result, const char *symbol, size_t maxLen)
Prototype for symbol-mapping function.
Definition: symbolmap.h:50


© 2012 Linux Foundation