OpenMAMA
MamdaOrderBookBasicDeltaList.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 MamdaOrderBookBasicDeltaListH
23 #define MamdaOrderBookBasicDeltaListH
24 
27 #include <iosfwd>
28 
29 using std::ostream;
30 
31 namespace Wombat
32 {
33 
43  class MAMDAOPTExpDLL MamdaOrderBookBasicDeltaList
44  {
45  public:
48 
52  void clear ();
53 
62  void setKeepBasicDeltas (bool keep);
63 
65  {
66  MOD_SIDES_NONE = 0,
67  MOD_SIDES_BID = 1,
68  MOD_SIDES_ASK = 2,
69  MOD_SIDES_BID_AND_ASK = 3
70  };
71 
80  ModifiedSides getModifiedSides() const;
81 
86  void add (MamdaOrderBookEntry* entry,
88  mama_quantity_t plDeltaSize,
90  MamdaOrderBookEntry::Action entryAction);
91 
96  void add (const MamdaOrderBookBasicDelta& delta);
97 
103  void setOrderBook (MamdaOrderBook* book);
104 
110  MamdaOrderBook* getOrderBook() const;
111 
115  mama_size_t getSize() const;
116 
122  void fixPriceLevelActions();
123 
128  void setConflateDeltas (bool conflate);
129 
133  bool getSendImmediately ();
134 
135 
141  void setProcessEntries (bool processEntries);
142 
148  void dump (ostream& output) const;
149 
154  class MAMDAOPTExpDLL iterator
155  {
156  protected:
158  struct iteratorImpl;
159  iteratorImpl& mImpl;
160  public:
161  iterator ();
162  iterator (const iterator& copy);
163  iterator (const iteratorImpl& copy);
164  iterator (iteratorImpl& copy);
165 
166  ~iterator ();
167  iterator& operator= (const iterator& rhs);
168  iterator& operator++ ();
169  const iterator& operator++ () const;
170  bool operator== (const iterator& rhs) const;
171  bool operator!= (const iterator& rhs) const;
172  MamdaOrderBookBasicDelta* operator* ();
173  const MamdaOrderBookBasicDelta* operator* () const;
174  };
175 
176  typedef const iterator const_iterator;
177 
178  iterator begin();
179  const_iterator begin() const;
180  iterator end();
181  const_iterator end() const;
182 
183  private:
184  struct MamdaOrderBookBasicDeltaListImpl;
185  MamdaOrderBookBasicDeltaListImpl& mImpl;
186 
187  // No copy constructor nor assignment operator.
190  };
191 
192 } // namespace
193 
194 #endif // MamdaOrderBookBasicDeltaListH
const iterator const_iterator
Definition: MamdaOrderBookBasicDeltaList.h:176
iteratorImpl & mImpl
Definition: MamdaOrderBookBasicDeltaList.h:158
MamdaOrderBookEntry is a class that represents an entry within a price level of an order book...
Definition: MamdaOrderBookEntry.h:48
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
MamdaOrderBookBasicDeltaList is a class that saves information about an order book delta that involve...
Definition: MamdaOrderBookBasicDeltaList.h:43
ModifiedSides
Definition: MamdaOrderBookBasicDeltaList.h:64
MamdaOrderBookBasicDelta is a class that saves information about a basic order book delta...
Definition: MamdaOrderBookBasicDelta.h:45
Action
An enumeration for book entry actions.
Definition: MamdaOrderBookEntry.h:57
The MamdaOrderBookBasicDeltaList's iterator provides access to the list of MamdaOrderBookBasicDelta o...
Definition: MamdaOrderBookBasicDeltaList.h:154
Action
An enumeration for price level actions.
Definition: MamdaOrderBookPriceLevel.h:53
MamdaOrderBookPriceLevel is a class that provides a price level type for order books.
Definition: MamdaOrderBookPriceLevel.h:44


© 2012 Linux Foundation