OpenMAMA
MamdaOrderBookListener.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 MamdaOrderBookListenerH
23 #define MamdaOrderBookListenerH
24 
26 #include <mamda/MamdaMsgListener.h>
27 #include <mamda/MamdaOrderBook.h>
28 #include <mamda/MamdaFieldState.h>
29 
30 namespace Wombat
31 {
32 
33  class MamdaOrderBookHandler;
34 
52  class MAMDAOPTExpDLL MamdaOrderBookListener : public MamdaMsgListener
53  {
54  public:
65  MamdaOrderBookListener (MamdaOrderBook* fullBook = NULL);
66 
67  virtual ~MamdaOrderBookListener ();
68 
76  virtual void addHandler (MamdaOrderBookHandler* handler);
77 
85  virtual void setProcessEntries (bool process);
86 
87 
93  virtual bool getProcessEntries () const;
94 
101  virtual void setProcessMarketOrders (bool process);
102 
108  virtual bool getProcessMarketOrders () const;
109 
118  virtual void addIgnoreEntryId (const char* id);
119 
128  virtual void removeIgnoreEntryId (const char* id);
129 
133  virtual void clear ();
134 
139  virtual void removeHandlers ();
140 
141  // Inherited from MamdaBasicRecap and MamdaBasicEvent
142  virtual const char* getSymbol () const;
143  virtual const char* getPartId () const;
144  virtual const MamaDateTime& getSrcTime () const;
145  virtual const MamaDateTime& getActivityTime () const;
146  virtual const MamaDateTime& getLineTime () const;
147  virtual const MamaDateTime& getSendTime () const;
148  virtual const MamaMsgQual& getMsgQual () const;
149  virtual const MamaDateTime& getEventTime () const;
150  virtual mama_seqnum_t getEventSeqNum () const;
151 
152  virtual MamdaFieldState getSymbolFieldState() const;
153  virtual MamdaFieldState getPartIdFieldState() const;
154  virtual MamdaFieldState getEventSeqNumFieldState() const;
155  virtual MamdaFieldState getEventTimeFieldState() const;
156  virtual MamdaFieldState getSrcTimeFieldState() const;
157  virtual MamdaFieldState getActivityTimeFieldState() const;
158  virtual MamdaFieldState getLineTimeFieldState() const;
159  virtual MamdaFieldState getSendTimeFieldState() const;
160  virtual MamdaFieldState getMsgQualFieldState() const;
161 
162  // Inherited from MamdaOrderBookRecap
163  virtual const MamdaOrderBook* getOrderBook () const;
164  virtual MamdaOrderBook* getOrderBook ();
165  // Inherited from MamdaOrderBookGap
166  virtual mama_seqnum_t getBeginGapSeqNum () const;
167  virtual mama_seqnum_t getEndGapSeqNum () const;
168 
173  virtual void setUseEntryManager (bool useManager);
174 
179  virtual void setEntryIdsAreUnique (bool uniqueIds);
180 
187  virtual void setKeepBasicDeltas (bool keep);
188 
197  virtual void setUpdateInconsistentBook (bool update);
198 
206  virtual void setUpdateStaleBook (bool update);
207 
213  virtual void setClearStaleBook (bool clear);
214 
218  virtual void setQuality (MamdaSubscription* sub,
219  mamaQuality quality);
225  virtual void setConflateDeltas (bool conflate);
226 
232  virtual bool getConflateDeltas ();
233 
240  virtual void setConflationInterval (double interval);
241 
246  virtual void forceInvokeDeltaHandlers ();
247 
251  virtual void clearConflatedDeltas ();
252 
256  virtual void onMsg (MamdaSubscription* subscription,
257  const MamaMsg& msg,
258  short msgType);
259 
266  virtual void acquireReadLock ();
267 
272  virtual void releaseReadLock ();
273 
274  virtual void acquireWriteLock ();
275  virtual void releaseWriteLock ();
276 
291  virtual void getBookSnapShot (MamdaOrderBook& result);
292 
301  virtual void setBookPropertyFids (mama_fid_t* fids, mama_size_t numFids);
302 
311  virtual void setLevelPropertyFids (mama_fid_t* fids, mama_size_t numFids);
312 
321  virtual void setEntryPropertyFids (mama_fid_t* fids, mama_size_t numFids);
322 
323 
324  // NOTE: must be public for builds on Solaris to work with changes
325  // required for gcc 2.96.
326  struct MamdaOrderBookListenerImpl;
327  MamdaOrderBookListenerImpl& mImpl;
328  };
329 
330 } // namespace
331 
332 #endif // MamdaOrderBookListenerH
333 
MamdaOrderBookListener is a class that specializes in handling order book updates.
Definition: MamdaOrderBookListener.h:52
MamdaOrderBookListenerImpl & mImpl
Definition: MamdaOrderBookListener.h:326
MamdaOrderImbalanceUpdate is an interface that provides access to order imbalance related fields...
Definition: MamdaAuctionFields.h:29
MamdaOrderBook is a class that provides order book functionality, including iterators over price leve...
Definition: MamdaOrderBook.h:47
MamdaOrderBookHandler is an interface for applications that want to have an easy way to handle order ...
Definition: MamdaOrderBookHandler.h:45
A MamdaSubscription is used to register interest in a particular symbol and source.
Definition: MamdaSubscription.h:54
MamdaFieldState
An enumeration representing field state.
Definition: MamdaFieldState.h:37
MamdaMsgListener defines an interface for handling MAMA messages for a MamdaSubscription.
Definition: MamdaMsgListener.h:38


© 2012 Linux Foundation