private void createDeltaFromMamaMsg(MamdaSubscription subscription, MamaMsg msg, bool isRecap) { if (mBookHandler != null) { mBookHandler.onBookAtomicBeginBook(subscription, this, isRecap); } // Note: the following test checks whether vector fields are part // of the data dictionary. However, the vector fields may indeed // be part of the data dictionary, but the message may still // contain the non-vector style order book data. if (MamdaOrderBookFields.getHasVectorFields()) { /* null is passed as default value otherwise * getVectorMsg throws an exception if not found */ MamaMsg[] msgLevels = msg.getVectorMsg(MamdaOrderBookFields.PRICE_LEVELS, null); if (msgLevels != null) { createDeltaFromMamaMsgWithVectorFields(subscription, msg, msgLevels, isRecap); } else { createDeltaFromMamaMsgWithoutVectorFields(subscription, msg, isRecap); } } else { createDeltaFromMamaMsgWithoutVectorFields(subscription, msg, isRecap); } if (mBookHandler != null) { mBookHandler.onBookAtomicEndBook(subscription, this); } }
/// <summary> /// createDeltaFromMamaMsg processes a MamaMsg containing a partial /// or full order book and returns whether processing is complete /// </summary> /// <param name="delta"></param> /// <param name="msg"></param> /// <returns></returns> private bool createDeltaFromMamaMsg( MamdaOrderBook delta, MamaMsg msg) { // Note: the following test checks whether vector fields are part // of the data dictionary. However, the vector fields may indeed // be part of the data dictionary, but the message may still // contain the non-vector style order book data. if (MamdaOrderBookFields.getHasVectorFields()) { /* null is passed as default value otherwise * getVectorMsg throws an exception if not found*/ MamaMsg[] msgLevels = msg.getVectorMsg(MamdaOrderBookFields.PRICE_LEVELS, null); if (msgLevels != null) { createDeltaFromMamaMsgWithVectorFields(delta, msgLevels); return(true); } } return(createDeltaFromMamaMsgWithoutVectorFields(delta, msg)); }