本文整理汇总了C++中MamdaOrderBook::getIsConsistent方法的典型用法代码示例。如果您正苦于以下问题:C++ MamdaOrderBook::getIsConsistent方法的具体用法?C++ MamdaOrderBook::getIsConsistent怎么用?C++ MamdaOrderBook::getIsConsistent使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MamdaOrderBook
的用法示例。
在下文中一共展示了MamdaOrderBook::getIsConsistent方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleRecap
void MamdaQuoteToBookListenerImpl::handleRecap (MamdaSubscription* subscription,
const MamaMsg& msg)
{
// Clear the book
mFullBook->clear();
// Clear ask/bid
mQuoteCache.mBidPrice = 0.0;
mQuoteCache.mBidSize = 0.0;
mQuoteCache.mAskPrice = 0.0;
mQuoteCache.mAskSize = 0.0;
// get all the fields out of the message
updateQuoteFields (msg);
checkQuoteCount (subscription, msg);
if (mFullBook->getIsConsistent()==false)
{
mama_log (MAMA_LOG_LEVEL_NORMAL,
"Received Recap: Book now consistent for %s\n",
(subscription ? subscription->getSymbol() : "no symbol"));
}
MamdaOrderBookPriceLevel* level = NULL;
if (mQuoteCache.mGotBidSize || mQuoteCache.mGotBidPrice)
{
addLevel (level,
mQuoteCache.mBidPrice.getValue(),
mQuoteCache.mBidSize,
MamdaOrderBookPriceLevel::MAMDA_BOOK_SIDE_BID,
mQuoteCache.mQuoteTime);
}
if (mQuoteCache.mGotAskSize || mQuoteCache.mGotAskPrice)
{
addLevel (level,
mQuoteCache.mAskPrice.getValue(),
mQuoteCache.mAskSize,
MamdaOrderBookPriceLevel::MAMDA_BOOK_SIDE_ASK,
mQuoteCache.mQuoteTime);
}
mFullBook->setIsConsistent (true);
setQuality (subscription, MAMA_QUALITY_OK);
invokeRecapHandlers (subscription, &msg);
MamdaOrderBookComplexDelta::clear();
}
示例2: handleQuote
//.........这里部分代码省略.........
"MamdaQuoteToBookListener: Got bid update, but price and size are 0\n");
}
}
else
{
addLevel (level,
mQuoteCache.mBidPrice.getValue(),
mQuoteCache.mBidSize,
MamdaOrderBookPriceLevel::MAMDA_BOOK_SIDE_BID,
mQuoteCache.mQuoteTime);
}
}
else
{
if ((mQuoteCache.mBidSize == 0) || (mQuoteCache.mBidPrice.isZero()))
{
deleteLevel (level, MamdaOrderBookPriceLevel::MAMDA_BOOK_SIDE_BID, mQuoteCache.mQuoteTime);
}
else if (mQuoteCache.mBidPrice == level->getPrice())
{
updateLevel (level,
mQuoteCache.mBidSize,
mQuoteCache.mBidSize - level->getSize(),
MamdaOrderBookPriceLevel::MAMDA_BOOK_SIDE_BID,
mQuoteCache.mQuoteTime);
}
else
{
deleteLevel (level,
MamdaOrderBookPriceLevel::MAMDA_BOOK_SIDE_BID,
mQuoteCache.mQuoteTime);
addLevel (level,
mQuoteCache.mBidPrice.getValue(),
mQuoteCache.mBidSize,
MamdaOrderBookPriceLevel::MAMDA_BOOK_SIDE_BID,
mQuoteCache.mQuoteTime);
}
}
}
if (mQuoteCache.mGotAskSize || mQuoteCache.mGotAskPrice)
{
// get current level
MamdaOrderBook::askIterator askIter = mFullBook->askBegin();
if (askIter == mFullBook->askEnd())
level = NULL;
else
level = *askIter;
if (level == NULL)
{
if (mQuoteCache.mAskSize == (mama_quantity_t)0 || mQuoteCache.mAskPrice.isZero())
{
if (mQuoteCache.mAskSize == (mama_quantity_t)0 && mQuoteCache.mAskPrice.isZero())
{
mama_log (MAMA_LOG_LEVEL_WARN,
"MamdaQuoteToBookListener: Got ask update, but price and size are 0\n");
}
}
else
{
addLevel (level,
mQuoteCache.mAskPrice.getValue(),
mQuoteCache.mAskSize,
MamdaOrderBookPriceLevel::MAMDA_BOOK_SIDE_ASK,
mQuoteCache.mQuoteTime);
}
}
else
{
if ((mQuoteCache.mAskSize == 0) || (mQuoteCache.mAskPrice.isZero()))
{
deleteLevel (level, MamdaOrderBookPriceLevel::MAMDA_BOOK_SIDE_ASK, mQuoteCache.mQuoteTime);
}
else if (mQuoteCache.mAskPrice == level->getPrice())
{
updateLevel (level,
mQuoteCache.mAskSize,
mQuoteCache.mAskSize - level->getSize(),
MamdaOrderBookPriceLevel::MAMDA_BOOK_SIDE_ASK,
mQuoteCache.mQuoteTime);
}
else
{
deleteLevel (level,
MamdaOrderBookPriceLevel::MAMDA_BOOK_SIDE_ASK,
mQuoteCache.mQuoteTime);
addLevel (level,
mQuoteCache.mAskPrice.getValue(),
mQuoteCache.mAskSize,
MamdaOrderBookPriceLevel::MAMDA_BOOK_SIDE_ASK,
mQuoteCache.mQuoteTime);
}
}
}
if (mUpdateInconsistentBook || mFullBook->getIsConsistent())
{
invokeDeltaHandlers (subscription, &msg);
}
}