OpenMAMA
MamaTransport.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 MAMA_TRANSPORT_CPP_H__
23 #define MAMA_TRANSPORT_CPP_H__
24 
25 #include "mama/mama.h"
26 
27 namespace Wombat
28 {
29 
30  class MamaSymbolMap;
31  class MamaTransport;
32  class MamaConnection;
33  class MamaServerConnection;
34 
39  class MAMACPPExpDLL MamaTransportTopicEventCallback
40  {
41  public:
43  {
44  };
49  virtual void onTopicSubscribe (MamaTransport* transport,
50  const char* topic,
51  const void* platformInfo)
52  {
53  return;
54  }
55 
56  virtual void onTopicUnsubscribe (MamaTransport* transport,
57  const char* topic,
58  const void* platformInfo)
59  {
60  return;
61  }
62 
63  };
64 
68  class MAMACPPExpDLL MamaTransportCallback
69  {
70  public:
72  {
73  };
74 
88  virtual void onDisconnect (
89  MamaTransport* transport,
90  const void* platformInfo)
91  {
92  return;
93  }
94 
108  virtual void onReconnect (
109  MamaTransport* transport,
110  const void* platformInfo)
111  {
112  return;
113  }
114 
128  virtual void onQuality (
129  MamaTransport* transport,
130  short cause,
131  const void* platformInfo) = 0;
132 
145  virtual void onConnect (
146  MamaTransport* transport,
147  const void* platformInfo)
148  {
149  return;
150  }
151 
164  virtual void onAccept (
165  MamaTransport* transport,
166  const void* platformInfo)
167  {
168  return;
169  }
170 
183  virtual void onAcceptReconnect (
184  MamaTransport* transport,
185  const void* platformInfo)
186  {
187  return;
188  }
189 
202  virtual void onPublisherDisconnect (
203  MamaTransport* transport,
204  const void* platformInfo)
205  {
206  return;
207  }
208 
215  virtual void onNamingServiceConnect (
216  MamaTransport* transport,
217  const void* platformInfo)
218  {
219  return;
220  }
221 
229  MamaTransport* transport,
230  const void* platformInfo)
231  {
232  return;
233  }
234  };
235 
239  class MAMACPPExpDLL MamaTransport
240  {
241  public:
245  MamaTransport ();
246  virtual ~MamaTransport ();
247 
258  MamaTransport (
259  mamaTransport cTransport);
260 
269  void create (
270  const char* name,
271  mamaBridge bridgeImpl);
272 
279  void setName (
280  const char* name);
281 
285  const char* getName () const;
286 
290  const char* getMiddleware() const;
291 
298  double getOutboundThrottle (
299  mamaThrottleInstance instance = MAMA_THROTTLE_DEFAULT) const;
300 
309  void setOutboundThrottle (
310  double outboundThrottle,
311  mamaThrottleInstance instance = MAMA_THROTTLE_DEFAULT);
312 
317  void setTransportTopicCallback (MamaTransportTopicEventCallback* callback);
321  void setTransportCallback (
322  MamaTransportCallback* callback);
323 
327  MamaTransportCallback* getTransportCallback ();
328 
334  void setSymbolMap (
335  const MamaSymbolMap* mapper);
336 
340  const MamaSymbolMap* getSymbolMap () const;
341 
348  void setDescription (
349  const char* description);
350 
358  const char* getDescription () const;
359 
360  /*
361  * Find a connection for the specified IP address and port. If the port is 0
362  * the first connection for the specified IP address is returned.
363  *
364  * The caller must delete() the returned value.
365  */
366  MamaConnection* findConnection (
367  const char* IpAddress,
368  uint16_t port);
369 
370  /*
371  * Return a list of all connections.
372  *
373  * Note. The results (list and len) must be passed to freeAllConnections
374  * to free the resources allocated by this call.
375  */
376  virtual void getAllConnections (
377  MamaConnection**& list,
378  uint32_t& len);
379 
380  /*
381  * Free array returned by getAllConnections
382  */
383  virtual void freeAllConnections (
384  MamaConnection** list,
385  uint32_t len);
386 
387  /*
388  * Return a list of all server connections.
389  *
390  * Note. The results (list and len) must be passed to
391  * freeAllServerConnections to free the resources allocated by this call.
392  */
393  virtual void getAllServerConnections (
394  MamaServerConnection**& list,
395  uint32_t& len);
396 
397  /*
398  * Free array returned by getAllServerConnections.
399  */
400  virtual void freeAllServerConnections (
401  MamaServerConnection** list,
402  uint32_t& len);
403 
419  void setInvokeQualityForAllSubscs (
420  bool invokeQualityForAllSubscs);
421 
429  bool getInvokeQualityForAllSubscs () const;
430 
439  mamaQuality getQuality () const;
440 
446  void requestConflation () const;
447 
453  void requestEndConflation () const;
454 
455 
456  // Access to C types for implementation of related classes.
457  mamaTransport getCValue ();
458  const mamaTransport getCValue () const;
459 
469  void* getNativeTransport (
470  int index);
471 
475  void disableRefresh (
476  bool disable);
477 
478  struct MamaTransportImpl;
479  MamaTransportImpl* mPimpl;
480 
481  private:
482  mamaTransport mTransport;
483  };
484 
485 } // namespace Wombat
486 
487 #endif // MAMA_TRANSPORT_CPP_H__
Wombat::MamaTransportCallback::onNamingServiceDisconnect
virtual void onNamingServiceDisconnect(MamaTransport *transport, const void *platformInfo)
Invoked on the subscriber when the naming service disconnects.
Definition: MamaTransport.h:228
Wombat::MamaTransportCallback::onNamingServiceConnect
virtual void onNamingServiceConnect(MamaTransport *transport, const void *platformInfo)
Invoked on the subscriber when the naming service connects.
Definition: MamaTransport.h:215
Wombat::MamaTransportCallback::onAcceptReconnect
virtual void onAcceptReconnect(MamaTransport *transport, const void *platformInfo)
Invoked on the publisher when the transport accepts a reconnection.
Definition: MamaTransport.h:183
Wombat::MamaSymbolMap
The MamaSymbolMap class provides the ability for MAMA to do client side symbology mapping.
Definition: MamaSymbolMap.h:36
Wombat::MamaTransportCallback::~MamaTransportCallback
virtual ~MamaTransportCallback()
Definition: MamaTransport.h:71
Wombat::MamaTransportTopicEventCallback
TransportTopicEvent callback.
Definition: MamaTransport.h:39
Wombat::MamaTransportCallback::onDisconnect
virtual void onDisconnect(MamaTransport *transport, const void *platformInfo)
Invoked on a publisher when a subscriber disconnects.
Definition: MamaTransport.h:88
Wombat::MamaTransportCallback::onConnect
virtual void onConnect(MamaTransport *transport, const void *platformInfo)
Invoked on the subscriber when the transport connects.
Definition: MamaTransport.h:145
Wombat::MamaTransportCallback::onAccept
virtual void onAccept(MamaTransport *transport, const void *platformInfo)
Invoked on the publisher when the transport accepts a connection.
Definition: MamaTransport.h:164
Wombat::MamaTransport::mPimpl
MamaTransportImpl * mPimpl
Definition: MamaTransport.h:478
Wombat::MamaTransportCallback::onPublisherDisconnect
virtual void onPublisherDisconnect(MamaTransport *transport, const void *platformInfo)
Invoked on the subscriber when the transport disconnects from the publisher.
Definition: MamaTransport.h:202
Wombat::MamaTransportTopicEventCallback::~MamaTransportTopicEventCallback
virtual ~MamaTransportTopicEventCallback()
Definition: MamaTransport.h:42
Wombat::MamaTransport
The MamaTransport class provides market data functionality.
Definition: MamaTransport.h:239
Wombat::MamaTransportCallback::onReconnect
virtual void onReconnect(MamaTransport *transport, const void *platformInfo)
Invoked when the transport reconnects.
Definition: MamaTransport.h:108
Wombat
Definition: MamaBasicSubscription.h:27
Wombat::MamaTransportTopicEventCallback::onTopicSubscribe
virtual void onTopicSubscribe(MamaTransport *transport, const char *topic, const void *platformInfo)
Invoked when a topic is subscribed to.
Definition: MamaTransport.h:49
Wombat::MamaTransportTopicEventCallback::onTopicUnsubscribe
virtual void onTopicUnsubscribe(MamaTransport *transport, const char *topic, const void *platformInfo)
Definition: MamaTransport.h:56
Wombat::MamaTransportCallback
Transport callback.
Definition: MamaTransport.h:68


© 2012 Linux Foundation