Main Page
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
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
{
70
MAMA_TRANSPORT_CONNECT
,
71
MAMA_TRANSPORT_CONNECT_FAILED
,
72
MAMA_TRANSPORT_RECONNECT
,
73
MAMA_TRANSPORT_DISCONNECT
,
74
MAMA_TRANSPORT_ACCEPT
,
75
MAMA_TRANSPORT_ACCEPT_RECONNECT
,
76
MAMA_TRANSPORT_PUBLISHER_DISCONNECT
,
77
MAMA_TRANSPORT_QUALITY
,
78
MAMA_TRANSPORT_NAMING_SERVICE_CONNECT
,
79
MAMA_TRANSPORT_NAMING_SERVICE_DISCONNECT
,
80
MAMA_TRANSPORT_WRITE_QUEUE_HIGH_WATER_MARK
,
81
MAMA_TRANSPORT_WRITE_QUEUE_LOW_WATER_MARK
82
}
mamaTransportEvent
;
83
91
typedef
enum
92
{
93
MAMA_TRANSPORT_TOPIC_SUBSCRIBED
,
94
MAMA_TRANSPORT_TOPIC_UNSUBSCRIBED
95
}
mamaTransportTopicEvent
;
96
97
107
typedef
enum
108
{
109
TPORT_LB_SCHEME_STATIC
,
110
TPORT_LB_SCHEME_ROUND_ROBIN
,
111
TPORT_LB_SCHEME_API
,
112
TPORT_LB_SCHEME_LIBRARY
113
}
tportLbScheme
;
114
133
typedef
void
(MAMACALLTYPE *
mamaTransportCB
)(
mamaTransport
tport,
134
mamaTransportEvent
,
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
188
mamaTransport_setTransportCallback
(
mamaTransport
transport,
189
mamaTransportCB
callback,
190
void
*
closure
);
198
MAMAExpDLL
199
extern
mama_status
200
mamaTransport_setWriteQueueWatermarks
(
mamaTransport
transport,
201
uint32_t highWater,
202
uint32_t lowWater);
203
208
MAMAExpDLL
209
extern
mama_status
210
mamaTransport_setTransportTopicCallback
(
mamaTransport
transport,
211
mamaTransportTopicCB
callback,
212
void
*
closure
);
222
MAMAExpDLL
223
extern
mama_status
224
mamaTransport_allocate
(
mamaTransport
* result);
225
243
MAMAExpDLL
244
extern
mama_status
245
mamaTransport_create
(
mamaTransport
transport,
246
const
char
* name,
247
mamaBridge
bridgeImpl);
248
256
MAMAExpDLL
257
extern
mama_status
258
mamaTransport_setName
(
mamaTransport
transport,
259
const
char
* name);
260
261
269
MAMAExpDLL
270
extern
mama_status
271
mamaTransport_getName
(
mamaTransport
transport,
272
const
char
** result);
273
274
MAMAExpDLL
275
const
char
*
276
mamaTransport_getMiddleware
(
mamaTransport
transport);
277
284
typedef
enum
285
{
286
MAMA_THROTTLE_DEFAULT
= 0,
287
MAMA_THROTTLE_INITIAL
= 1,
288
MAMA_THROTTLE_RECAP
= 2
289
}
mamaThrottleInstance
;
290
301
MAMAExpDLL
302
extern
mama_status
303
mamaTransport_getOutboundThrottle
(
mamaTransport
transport,
304
mamaThrottleInstance
instance,
305
double
*result);
306
313
MAMAExpDLL
314
extern
void
315
mamaTransport_disableRefresh
(
mamaTransport
transport,
316
uint8_t disable);
317
325
MAMAExpDLL
326
extern
mama_status
327
mamaTransport_setOutboundThrottle
(
mamaTransport
transport,
328
mamaThrottleInstance
instance,
329
double
outboundThrottle);
330
339
MAMAExpDLL
340
extern
void
341
mamaTransport_setSymbolMapFunc
(
mamaTransport
transport,
342
mamaSymbolMapFunc
mapFunc,
343
void
*
closure
);
344
351
MAMAExpDLL
352
extern
mamaSymbolMapFunc
353
mamaTransport_getSymbolMapFunc
(
mamaTransport
transport);
354
361
MAMAExpDLL
362
extern
void
*
363
mamaTransport_getSymbolMapFuncClosure
(
mamaTransport
transport);
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
408
mamaTransport_setInvokeQualityForAllSubscs
(
409
mamaTransport
transport,
410
int
invokeQualityForAllSubscs);
411
420
MAMAExpDLL
421
extern
mama_status
422
mamaTransport_getInvokeQualityForAllSubscs
(
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
448
mamaTransport_destroy
(
mamaTransport
transport);
449
460
MAMAExpDLL
461
extern
mama_status
462
mamaTransport_findConnection
(
mamaTransport
transport,
463
mamaConnection
* result,
464
const
char
* ipAddress,
465
uint16_t port);
466
472
MAMAExpDLL
473
extern
mama_status
474
mamaTransport_getAllConnections
(
mamaTransport
transport,
475
mamaConnection
** result,
476
uint32_t* len);
477
478
484
MAMAExpDLL
485
extern
mama_status
486
mamaTransport_getAllConnectionsForTopic
(
mamaTransport
transport,
487
const
char
* topic,
488
mamaConnection
** result,
489
uint32_t* len);
493
MAMAExpDLL
494
extern
mama_status
495
mamaTransport_freeAllConnections
(
mamaTransport
transport,
496
mamaConnection
* result,
497
uint32_t len);
498
504
MAMAExpDLL
505
extern
mama_status
506
mamaTransport_getAllServerConnections
(
mamaTransport
transport,
507
mamaServerConnection
** result,
508
uint32_t* len);
509
513
MAMAExpDLL
514
extern
mama_status
515
mamaTransport_freeAllServerConnections
(
mamaTransport
transport,
516
mamaServerConnection
* result,
517
uint32_t len);
518
523
MAMAExpDLL
524
extern
mama_status
525
mamaTransport_setLbInitialCallback
(
mamaTransport
transport,
526
mamaTransportLbInitialCB
callback);
527
534
MAMAExpDLL
535
extern
mama_status
536
mamaTransport_setLbCallback
(
mamaTransport
transport,
537
mamaTransportLbCB
callback);
538
544
MAMAExpDLL
545
extern
mama_status
546
mamaTransport_requestConflation
(
mamaTransport
transport);
547
554
MAMAExpDLL
555
extern
mama_status
556
mamaTransport_requestEndConflation
(
mamaTransport
transport);
557
558
MAMAExpDLL
559
extern
mama_status
560
mamaTransport_setDeactivateSubscriptionOnError
(
mamaTransport
transport,
561
int
deactivate);
562
563
564
MAMAExpDLL
565
extern
int
566
mamaTransport_getDeactivateSubscriptionOnError
(
mamaTransport
transport);
567
577
MAMAExpDLL
578
extern
mama_status
579
mamaTransport_getNativeTransport
(
mamaTransport
transport,
580
int
index,
581
void
** nativeTport);
582
593
MAMAExpDLL
594
extern
mama_status
595
mamaTransport_getNativeTransportNamingCtx
(
mamaTransport
transport,
596
int
index,
597
void
** nativeTportNamingCtx);
598
599
MAMAExpDLL
600
extern
mamaStatsCollector
601
mamaTransport_getStatsCollector
(
mamaTransport
transport);
602
609
MAMAExpDLL
610
extern
mama_status
611
mamaTransport_getClosure
(
mamaTransport
transport,
612
void
**
closure
);
613
620
MAMAExpDLL
621
extern
mama_status
622
mamaTransport_setClosure
(
mamaTransport
transport,
623
void
*
closure
);
624
625
#if defined(__cplusplus)
626
}
627
#endif
628
629
#endif
/* MamaTransportH__ */
© 2012 Linux Foundation