Пример #1
0
 public void onTradeCorrection(
     MamdaSubscription sub,
     MamdaTradeListener listener,
     MamaMsg msg,
     MamdaTradeCorrection correction,
     MamdaTradeRecap recap)
 {
     prettyPrint("Trade correction ({0}):", sub.getSymbol());
 }
 public void onOptionSeriesUpdate(
     MamdaSubscription subscription,
     MamdaOptionChainListener listener,
     MamaMsg msg,
     MamdaOptionSeriesUpdate update,
     MamdaOptionChain chain)
 {
     printView();
 }
Пример #3
0
 public void onTradeClosing(
     MamdaSubscription sub,
     MamdaTradeListener listener,
     MamaMsg msg,
     MamdaTradeClosing closing,
     MamdaTradeRecap recap)
 {
     prettyPrint("Trade closing ({0}):", sub.getSymbol());
 }
Пример #4
0
 public void onTradeCancelOrError(
     MamdaSubscription sub,
     MamdaTradeListener listener,
     MamaMsg msg,
     MamdaTradeCancelOrError cancelOrError,
     MamdaTradeRecap recap)
 {
     prettyPrint("Trade error/cancel ({0}):", sub.getSymbol());
 }
 private void handleUpdate(
     MamdaSubscription subscription,
     MamaMsg msg)
 {
     foreach (MamdaAuctionHandler handler in mHandlers)
     {
         handler.onAuctionUpdate(subscription, this, msg, this, this);
     }
 }
 public void onSecurityStatusRecap(
     MamdaSubscription subscription,
     MamdaSecurityStatusListener listener,
     MamaMsg msg,
     MamdaSecurityStatusRecap recap)
 {
     Console.WriteLine("SecStatus recap (" + subscription.getSymbol()
                       + "    Status:" + recap.getSecurityStatusStr());
 }
 public void onOptionChainRecap(
     MamdaSubscription subscription,
     MamdaOptionChainListener listener,
     MamaMsg msg,
     MamdaOptionChain chain)
 {
     myGotRecap = true;
     printView();
 }
        private void  createDeltaFromMamaMsgWithoutVectorFields(
            MamdaSubscription subscription,
            MamaMsg msg,
            bool isRecap)
        {
            NullableInt numLevelFields_ = new NullableInt();

            int numLevelFieldInMsg = 1;

            if (msg.tryI32(MamdaOrderBookFields.NUM_LEVELS, ref numLevelFields_))
            {
                numLevelFieldInMsg = numLevelFields_.Value;
            }

            int maxLevelFields = MamdaOrderBookFields.getNumLevelFields();

            // getNumLevelFields() defaults to 0 but we want to go into the
            // below loop at least once for flattened messages scenario
            if (maxLevelFields == 0)
            {
                maxLevelFields = 1;
            }

            if (numLevelFieldInMsg < maxLevelFields)
            {
                maxLevelFields = numLevelFieldInMsg;
            }
            mPriceLevels = maxLevelFields;

            for (int i = 1; i <= maxLevelFields; i++)
            {
                clearLevelFields();
                mPriceLevel = i;
                MamaMsg plMsg = null;

                if (MamdaOrderBookFields.PRICE_LEVEL.Length > 1)
                {
                    plMsg = msg.getMsg(MamdaOrderBookFields.PRICE_LEVEL[i], null);
                }

                if (plMsg == null)
                {
                    if (numLevelFieldInMsg == 1)
                    {
                        // Price level fields are probably be in the main message.
                        plMsg = msg;
                    }
                    else
                    {
                        throw new MamdaDataException(
                                  "cannot find price level fields in MamaMsg");
                    }
                }
                getLevelInfoAndEntries(subscription, msg, plMsg, isRecap);
            }
        }
Пример #9
0
 public void onTradeReport(
     MamdaSubscription sub,
     MamdaTradeListener listener,
     MamaMsg msg,
     MamdaTradeReport trade,
     MamdaTradeRecap recap)
 {
     // Do something with a specific trade report.
     myDisplay.printlnContract(myContract);
 }
Пример #10
0
 public void onQuoteUpdate(
     MamdaSubscription sub,
     MamdaQuoteListener listener,
     MamaMsg msg,
     MamdaQuoteUpdate update,
     MamdaQuoteRecap recap)
 {
     // Do something with a specific quote.
     myDisplay.printlnContract(myContract);
 }
Пример #11
0
 public void onTradeReport(
     MamdaSubscription sub,
     MamdaTradeListener listener,
     MamaMsg msg,
     MamdaTradeReport trade,
     MamdaTradeRecap recap)
 {
     Console.WriteLine("Underlying trade: " + trade.getTradeVolume() +
                       " @ " + trade.getTradePrice());
 }
Пример #12
0
 public void onQuoteUpdate(
     MamdaSubscription subscription,
     MamdaQuoteListener listener,
     MamaMsg msg,
     MamdaQuoteUpdate update,
     MamdaQuoteRecap recap)
 {
     myShortSaleCircuitBreaker = update.getShortSaleCircuitBreaker();
     Console.WriteLine("myShortSaleCircuitBreaker: " + myShortSaleCircuitBreaker);
 }
Пример #13
0
 public void onTradeCorrection(
     MamdaSubscription sub,
     MamdaTradeListener listener,
     MamaMsg msg,
     MamdaTradeCorrection correction,
     MamdaTradeRecap recap)
 {
     myCorrShortSaleCircuitBreaker = correction.getCorrShortSaleCircuitBreaker();
     Console.WriteLine("myCorrShortSaleCircuitBreaker: " + myCorrShortSaleCircuitBreaker);
 }
Пример #14
0
 public void onTradeCancelOrError(
     MamdaSubscription sub,
     MamdaTradeListener listener,
     MamaMsg msg,
     MamdaTradeCancelOrError cancelOrError,
     MamdaTradeRecap recap)
 {
     myOrigShortSaleCircuitBreaker = cancelOrError.getOrigShortSaleCircuitBreaker();
     Console.WriteLine("myOrigShortSaleCircuitBreaker: " + myOrigShortSaleCircuitBreaker);
 }
Пример #15
0
 public void onTradeReport(
     MamdaSubscription sub,
     MamdaTradeListener listener,
     MamaMsg msg,
     MamdaTradeReport trade,
     MamdaTradeRecap recap)
 {
     myShortSaleCircuitBreaker = trade.getShortSaleCircuitBreaker();
     Console.WriteLine("myShortSaleCircuitBreaker: " + myShortSaleCircuitBreaker);
 }
Пример #16
0
 public void onQuoteGap(
     MamdaSubscription sub,
     MamdaQuoteListener listener,
     MamaMsg msg,
     MamdaQuoteGap gapEvent,
     MamdaQuoteRecap recap)
 {
     Console.WriteLine("Quote gap (" + gapEvent.getBeginGapSeqNum() +
                       "-" + gapEvent.getEndGapSeqNum() + ")");
 }
Пример #17
0
        public void Teardown()
        {
            // Reset member variables
            if (m_msg != null)
            {
                m_msg.destroy();
                m_msg = null;
            }

            Mama.close();
        }
 public void onBookAtomicClear(
     MamdaSubscription subscription,
     MamdaBookAtomicListener listener,
     MamaMsg msg)
 {
     if (myQuietModeLevel < 2)
     {
         Console.WriteLine("BOOK CLEAR - " + subscription.getSymbol());
         Console.WriteLine();
     }
 }
 public void onBookAtomicLevelEntryDelta(
     MamdaSubscription subscription,
     MamdaBookAtomicListener listener,
     MamaMsg msg,
     MamdaBookAtomicLevelEntry levelEntry)
 {
     if (myQuietModeLevel < 2)
     {
         prettyPrint(subscription, levelEntry);
     }
 }
Пример #20
0
 public void onQuoteGap(
     MamdaSubscription subscription,
     MamdaQuoteListener listener,
     MamaMsg msg,
     MamdaQuoteGap gap,
     MamdaQuoteRecap recap)
 {
     Console.WriteLine("Quote gap ({0}-{1})",
                       gap.getBeginGapSeqNum(),
                       gap.getEndGapSeqNum());
 }
 public void onBookAtomicLevelRecap(
     MamdaSubscription subscription,
     MamdaBookAtomicListener listener,
     MamaMsg msg,
     MamdaBookAtomicLevel level)
 {
     if (myQuietModeLevel < 2)
     {
         prettyPrint(subscription, level);
     }
 }
 private void handleRecap(
     MamdaSubscription subscription,
     MamaMsg msg)
 {
     updateFieldStates();
     updateFundamentalFields(msg);
     foreach (MamdaFundamentalHandler handler in mHandlers)
     {
         handler.onFundamentals(subscription, this, msg, this);
     }
 }
Пример #23
0
 public void testTradeId()
 {
     mMsg = new MamaMsg();
     addMamaHeaderFields(mMsg,
                         (byte)mamaMsgType.MAMA_MSG_TYPE_TRADE,
                         (byte)mamaMsgStatus.MAMA_MSG_STATUS_OK,
                         (uint)1);
     mMsg.addString("wTradeId", 477, "A");
     ticker.callMamdaOnMsg(mSubscription, mMsg);
     Assert.AreEqual("A", ticker.myTradeId);
 }
Пример #24
0
            /// <summary>
            /// This function will invoke the message callback on the user supplied callback implementation.
            /// </summary>
            /// <param name="nativeMsg">
            /// The native MAMA message.
            /// </param>
            internal void InvokeMessage(IntPtr nativeMsg)
            {
                if (null != mCallback)
                {
                    // Create a new MamaaMsg using the native handle passed in
                    MamaMsg message = new MamaMsg(nativeMsg);

                    // Invoke the callback
                    mCallback.onMsg(mInbox, message);
                }
            }
 /// <summary>
 /// Generic method for dispatching messages to instances of
 /// MamaMsgListeners.
 /// </summary>
 /// <param name="listeners"></param>
 /// <param name="subscription"></param>
 /// <param name="msg"></param>
 /// <param name="msgType"></param>
 private void forwardMsg(
     ArrayList listeners,
     MamdaSubscription subscription,
     MamaMsg msg,
     mamaMsgType msgType)
 {
     foreach (MamdaMsgListener listener in listeners)
     {
         listener.onMsg(subscription, msg, msgType);
     }
 }
Пример #26
0
        public void Setup()
        {
            Mama.loadBridge("lbm");
            Mama.open();
            // Create the message
            m_msg = new MamaMsg();

            // Create the array of messages
            m_vectorPrice  = InitialisePriceArray(m_numberPrices, 69);
            m_vectorPrice2 = InitialisePriceArray(m_numberPrices, 144);
        }
Пример #27
0
        /// <summary>
        /// Returns a MamaMsg representing the data dictionary. This message can be
        /// published or used to create a new MamaDictionary object.
        /// A new MamaMsg is created for each invocation of the method. It is the
        /// responsibility of the caller to delete the message when no longer
        /// needed.
        /// </summary>
        public MamaMsg getDictionaryMessage()
        {
            EnsurePeerCreated();
            MamaMsg myDictMsg;
            IntPtr  mamaMsg = IntPtr.Zero;
            int     code    = NativeMethods.mamaDictionary_getDictionaryMessage(nativeHandle, ref mamaMsg);

            CheckResultCode(code);
            myDictMsg = new MamaMsg(mamaMsg);
            return(myDictMsg);
        }
Пример #28
0
        /// <summary>
        /// Send a message with the throttle.
        /// The lifecycle of the message sent is controlled by the user of the API. The
        /// callback indicates when the API is no longer using the message and can be
        /// destroyed/reused by the application.
        /// </summary>
        /// <param name="message">The mamaMsg to send.</param>
        /// <param name="callback">Callback invoked once the message has been send on
        /// the throttle</param>
        /// <param name="closure">User supplied data returned in the send complete callback.</param>
        public void sendWithThrottle(
            MamaMsg message,
            MamaSendCompleteCallback callback,
            object closure)
        {
#if MAMA_WRAPPERS_CHECK_ARGUMENTS
            if (message == null)
            {
                throw new ArgumentNullException("message");
            }
            if (callback == null)
            {
                throw new ArgumentNullException("callback");
            }
            EnsurePeerCreated();
#endif // MAMA_WRAPPERS_CHECK_ARGUMENTS

            // Create a new callback wrapper
            MamaCallbackWrapper <MamaSendCompleteCallback, MamaThrottledSendCompleteDelegate> wrapper =
                new MamaCallbackWrapper <MamaSendCompleteCallback, MamaThrottledSendCompleteDelegate>(
                    callback,
                    closure,
                    new MamaThrottledSendCompleteDelegate(onSendComplete));

            // Add this to the store
            IntPtr nativeClosure = mCallbackStore.StoreWrapper(wrapper);

            // Call the native function
            int code = NativeMethods.mamaPublisher_sendWithThrottle(
                nativeHandle,
                message.NativeHandle,
                (Wombat.MamaPublisher.MamaThrottledSendCompleteDelegate)wrapper.NativeDelegate,
                nativeClosure);
            try
            {
                CheckResultCode(code);
            }

            // If something goes wrong then remove the wrapper from the store
            catch
            {
                // Remove the wrapper
                mCallbackStore.RemoveWrapper(nativeClosure);

                // Dispose it
                ((IDisposable)wrapper).Dispose();

                // Rethrow the exception
                throw;
            }

            // Ensure that the message passed will not delete its native peer
            message.SelfManageLifeTime(false);
        }
 public void addMamaHeaderFields(
     MamaMsg msg,
     byte msgType,
     byte msgStatus,
     uint seqNum)
 {
     msg.addU8(null, 1, msgType);
     msg.addU8(null, 2, msgStatus);
     msg.addU32(null, 10, seqNum);
     msg.addU64(null, 20, 1);
 }
 /// <summary>
 /// Process initial images. This is most likely when we will be
 /// notify of the creation of a new security.
 /// </summary>
 /// <param name="subscription"></param>
 /// <param name="msg"></param>
 /// <param name="msgType"></param>
 /// <param name="symbol"></param>
 private void handleFullImage(
     MamdaSubscription subscription,
     MamaMsg msg,
     mamaMsgType msgType,
     string symbol)
 {
     if (!mListeners.containsKey(symbol))
     {
         checkSecurityCreateNotify(subscription, symbol);
     }
 }
Пример #31
0
            public void onAuctionUpdate(
				MamdaSubscription   subscription,
				MamdaAuctionListener  listener,
				MamaMsg             msg,
				MamdaAuctionUpdate    update,
				MamdaAuctionRecap     recap)
            {
                Console.WriteLine("Auction Update ({0}, Uncross Price {1}({2}), Uncross Vol {3}({4}), Ind {5}({6})",
                                  subscription.getSymbol(),
                                  update.getUncrossPrice(),
                                  update.getUncrossPriceFieldState(),
                                  update.getUncrossVolume(),
                                  update.getUncrossVolumeFieldState(),
                                  update.getUncrossPriceInd(),
                                  update.getUncrossPriceIndFieldState());
            }
Пример #32
0
            public void onQuoteRecap(
				MamdaSubscription   subscription,
				MamdaQuoteListener  listener,
				MamaMsg             msg,
				MamdaQuoteRecap     recap)
            {
                Console.WriteLine("Quote Recap ({0})", subscription.getSymbol());
            }
Пример #33
0
            public void onBookClear(
				MamdaSubscription        sub,
				MamdaOrderBookListener   listener,
				MamaMsg                  msg,
				MamdaOrderBookDelta      bookDelta,
				MamdaOrderBookRecap      fullBook)
            {
                Console.WriteLine("BookClear");
            }
Пример #34
0
            public void onTradeCancelOrError(
				MamdaSubscription        sub,
				MamdaTradeListener       listener,
				MamaMsg                  msg,
				MamdaTradeCancelOrError  cancelOrError,
				MamdaTradeRecap          recap)
            {
            }
Пример #35
0
            public void onQuoteRecap(
				MamdaSubscription   sub,
				MamdaQuoteListener  listener,
				MamaMsg             msg,
				MamdaQuoteRecap     recap)
            {
                // Refresh the "display" of this contract.
                if (myView.isVisible(myContract))
                    myDisplay.printContract (myContract);
            }
Пример #36
0
            public void onOptionChainRecap(
				MamdaSubscription         subscription,
				MamdaOptionChainListener  listener,
				MamaMsg                   msg,
				MamdaOptionChain          chain)
            {
                myGotRecap = true;
                printChain(chain);
            }
Пример #37
0
            public void onTradeReport(
				MamdaSubscription   sub,
				MamdaTradeListener  listener,
				MamaMsg             msg,
				MamdaTradeReport    trade,
				MamdaTradeRecap     recap)
            {
                prettyPrint(
                    "Trade ({0}:{1}): {2} @ {3} (seq#: {4}; time: {5}; acttime: {6}; qual: {7})",
                    sub.getSymbol(),
                    recap.getTradeCount(),
                    trade.getTradeVolume(),
                    trade.getTradePrice(),
                    trade.getEventSeqNum(),
                    trade.getEventTime(),
                    trade.getActivityTime(),
                    trade.getTradeQual());
            }
Пример #38
0
            public void onBookClear(
				MamdaSubscription        sub,
				MamdaOrderBookListener   listener,
				MamaMsg                  msg,
				MamdaOrderBookDelta      bookDelta,
				MamdaOrderBookRecap      fullBook)
            {
                if (myQuietModeLevel < 2)
                {
                    Console.WriteLine ("CLEAR!!!  (seq# {0}) ", msg.getSeqNum());
                }
            }
Пример #39
0
            public void onMsg(
				MamdaSubscription subscription,
				MamaMsg msg,
				mamaMsgType msgType)
            {
                Console.WriteLine("Update ({0})", subscription.getSymbol());
            }
Пример #40
0
            public void onBookRecap(
				MamdaSubscription        sub,
				MamdaOrderBookListener   listener,
				MamaMsg                  msg,
				MamdaOrderBookDelta      bookDelta,
				MamdaOrderBookRecap      bookRecap)
            {
                ++myRecapStats;
            }
Пример #41
0
            public void onOptionSeriesUpdate(
				MamdaSubscription         subscription,
				MamdaOptionChainListener  listener,
				MamaMsg                   msg,
				MamdaOptionSeriesUpdate   update,
				MamdaOptionChain          chain)
            {
                printChain(chain);
            }
Пример #42
0
            public void onFundamentals(
			MamdaSubscription         subscription,
			MamdaFundamentalListener  listener,
			MamaMsg                   msg,
			MamdaFundamentals         fundamentals)
            {
                Console.WriteLine ("Fundamental update (" + subscription.getSymbol() +
                                   "    wDivFreq:" + fundamentals.getDividendFrequency() +
                                   "    wMarketSector:" + fundamentals.getMarketSector() +
                                   "    wMarketSegment:" + fundamentals.getMarketSegment()
                                    );
            }
Пример #43
0
            public void onOptionChainGap(
				MamdaSubscription         subscription,
				MamdaOptionChainListener  listener,
				MamaMsg                   msg,
				MamdaOptionChain          chain)
            {
                printChain(chain);
            }
Пример #44
0
            public void onQuoteGap(
				MamdaSubscription   sub,
				MamdaQuoteListener  listener,
				MamaMsg             msg,
				MamdaQuoteGap       gap,
				MamdaQuoteRecap     recap)
            {
            }
Пример #45
0
            public void onOptionContractCreate(
				MamdaSubscription         subscription,
				MamdaOptionChainListener  listener,
				MamaMsg                   msg,
				MamdaOptionContract       contract,
				MamdaOptionChain          chain)
            {
                // (Optional: create a trade/quote handler for the
                // individual option contract.)
                OptionContractTicker aTicker =
                    new OptionContractTicker(contract, chain, this);
                contract.addQuoteHandler(aTicker);
                contract.addTradeHandler(aTicker);
            }
Пример #46
0
            public void onBookGap(
				MamdaSubscription        sub,
				MamdaOrderBookListener   listener,
				MamaMsg                  msg,
				MamdaOrderBookGap        gapEvent,
				MamdaOrderBookRecap      fullBook)
            {
                ++myBookGapStats;
            }
Пример #47
0
            public void onQuoteClosing(
				MamdaSubscription   sub,
				MamdaQuoteListener  listener,
				MamaMsg             msg,
				MamdaQuoteClosing   quoteClosing,
				MamdaQuoteRecap     recap)
            {
            }
Пример #48
0
            public void onTradeCorrection(
				MamdaSubscription        sub,
				MamdaTradeListener       listener,
				MamaMsg                  msg,
				MamdaTradeCorrection     tradeCorrection,
				MamdaTradeRecap          recap)
            {
            }
Пример #49
0
            public void onQuoteUpdate(
				MamdaSubscription   sub,
				MamdaQuoteListener  listener,
				MamaMsg             msg,
				MamdaQuoteUpdate    update,
				MamdaQuoteRecap     recap)
            {
                // Do something with a specific quote.
                myDisplay.printlnContract(myContract);
            }
Пример #50
0
            public void onTradeRecap(
				MamdaSubscription   sub,
				MamdaTradeListener  listener,
				MamaMsg             msg,
				MamdaTradeRecap     recap)
            {
                // Refresh the "display" of this contract.
                myDisplay.printlnContract(myContract);
            }
Пример #51
0
            public void onTradeClosing(
				MamdaSubscription        sub,
				MamdaTradeListener       listener,
				MamaMsg                  msg,
				MamdaTradeClosing        tradeClosing,
				MamdaTradeRecap          recap)
            {
            }
Пример #52
0
            public void onQuoteUpdate(
				MamdaSubscription   subscription,
				MamdaQuoteListener  listener,
				MamaMsg             msg,
				MamdaQuoteUpdate    update,
				MamdaQuoteRecap     recap)
            {
                string format = "Quote ({0}:{1}): {2} {3} X {4} {5} (seq#: {6}; time: {7}; qual: {8})";
                Console.WriteLine(format,
                    subscription.getSymbol(),
                    recap.getQuoteCount(),
                    update.getBidPrice(),
                    update.getBidSize(),
                    update.getAskSize(),
                    update.getAskPrice(),
                    update.getEventSeqNum(),
                    update.getEventTime(),
                    update.getQuoteQual());
            }
Пример #53
0
            public void onTradeGap(
				MamdaSubscription   sub,
				MamdaTradeListener  listener,
				MamaMsg             msg,
				MamdaTradeGap       gap,
				MamdaTradeRecap     recap)
            {
            }
Пример #54
0
 public void onSecurityStatusUpdate(
     MamdaSubscription            subscription,
     MamdaSecurityStatusListener  listener,
     MamaMsg                      msg,
     MamdaSecurityStatusUpdate    update,
     MamdaSecurityStatusRecap     recap)
 {
     Console.WriteLine ("SecStatus update (" + subscription.getSymbol ()
      + "    Status:" + listener.getSecurityStatusStr ());
 }
Пример #55
0
            public void onTradeReport(
				MamdaSubscription   sub,
				MamdaTradeListener  listener,
				MamaMsg             msg,
				MamdaTradeReport    trade,
				MamdaTradeRecap     recap)
            {
                // Do something with a specific trade report.
                myDisplay.printlnContract(myContract);
            }
Пример #56
0
            public void onTradeRecap(
				MamdaSubscription   sub,
				MamdaTradeListener  listener,
				MamaMsg             msg,
				MamdaTradeRecap     recap)
            {
                prettyPrint("Trade Recap ({0}): ", sub.getSymbol());
            }
Пример #57
0
            public void onBookGap(
				MamdaSubscription        sub,
				MamdaOrderBookListener   listener,
				MamaMsg                  msg,
				MamdaOrderBookGap        gapEvent,
				MamdaOrderBookRecap      fullBook)
            {
                Console.WriteLine (
                    "Received book gap " + sub.getSymbol ()
                        + " Start: " + gapEvent.getBeginGapSeqNum()
                        + " End: "   + gapEvent.getEndGapSeqNum());
            }
Пример #58
0
            public void onQuoteGap(
				MamdaSubscription   subscription,
				MamdaQuoteListener  listener,
				MamaMsg             msg,
				MamdaQuoteGap       gap,
				MamdaQuoteRecap     recap)
            {
                Console.WriteLine("Quote gap ({0}-{1})",
                    gap.getBeginGapSeqNum(),
                    gap.getEndGapSeqNum());
            }
Пример #59
0
            public void onFailure(
				MamdaOrderBookCheckType  checkType,
				string reason,
				MamaMsg msg,
				MamdaOrderBook realTimeBook,
				MamdaOrderBook checkBook)
            {
                //Failed Check
                Console.WriteLine("Failure check ({0} - {1})", checkType, reason);
                Console.WriteLine("msg: {0}", msg);
                Console.WriteLine("Failed Current Book: ");
                realTimeBook.dump();
                Console.WriteLine("Failed Checking Book: ");
                checkBook.dump();
            }
Пример #60
0
            public void onBookRecap(
				MamdaSubscription        sub,
				MamdaOrderBookListener   listener,
				MamaMsg                  msg,
				MamdaOrderBookDelta      bookDelta,
				MamdaOrderBookRecap      bookRecap)
            {
                if (myQuietModeLevel < 2)
                {
                    Console.WriteLine ("RECAP!!!  (seq# {0}) ", msg.getSeqNum());
                }

                if (myCacheFullBooks)
                {
                    prettyPrint(bookRecap.getFullOrderBook());
                }
                else
                {
                    prettyPrint(bookDelta.getDeltaOrderBook());
                }
            }