OpenMAMA C++ API
MamaDQPublisherManager.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_DQPUBLISHERMANAGER_CPP_H__
23 #define MAMA_DQPUBLISHERMANAGER_CPP_H__
24 
26 #include "mama/dqpublishermanager.h"
27 
28 namespace Wombat
29 {
30 class MamaDQPublisherManagerImpl;
31 class MamaSource;
32 class MamaTransport;
33 class MamaQueue;
34 class MamaMsg;
35 
36 
37 
38 class MAMACPPExpDLL MamaPublishTopic
39 {
40  public:
41  friend struct MamaDQPublisherManagerImpl;
42  const char* mSymbol;
44  void* mCache;
45  protected:
47  void set(mamaPublishTopic* pubInfo);
48 };
49 
50 class MAMACPPExpDLL MamaDQPublisherManager
51 {
52 public:
53  virtual ~MamaDQPublisherManager (void);
54 
56 
65  virtual void create (MamaTransport *transport,
66  MamaQueue* queue,
68  const char* sourcename,
69  const char* root = "_MD");
70 
71  virtual void addPublisher (const char *symbol, MamaDQPublisher* pub, void * cache);
72  virtual MamaDQPublisher* removePublisher (const char *symbol);
73 
74  virtual MamaDQPublisher* createPublisher (const char *symbol, void * cache);
75  virtual void destroyPublisher (const char *symbol);
76 
77  virtual const MamaDQPublisher* getPublisher (const char* symbol) const;
78 
79  virtual void destroy (void);
80 
81  virtual void setStatus (mamaMsgStatus status);
82 
83  virtual void setSenderId (uint64_t id);
84 
85  virtual void setSeqNum (mama_seqnum_t num);
86 
87  virtual void sendSyncRequest (mama_u16_t nummsg, mama_f64_t delay, mama_f64_t duration);
88 
89  virtual void sendNoSubscribers (const char *symbol);
90 
91 
92 private:
93  MamaDQPublisherManagerImpl* mImpl;
94 
95 };
96 
97 }
98 #endif
void * mCache
Definition: MamaDQPublisherManager.h:44
MamaDQPublisher * mPub
Definition: MamaDQPublisherManager.h:43
Definition: MamaDQPublisherManager.h:38
Definition: MamaDQPublisherManager.h:50
Definition: MamaDQPublisher.h:36
const char * mSymbol
Definition: MamaDQPublisherManager.h:42
Definition: MamaDQPublisherManagerCallback.h:37
Definition: MamaConnection.h:29
MamaPublishTopic()
Definition: MamaDQPublisherManager.h:46
Queue allows applications to dispatch events in order with multiple threads using a single MamaDispat...
Definition: MamaQueue.h:40
The MamaTransport class provides market data functionality.
Definition: MamaTransport.h:261