本文整理汇总了C++中MamdaOrderBook::clear方法的典型用法代码示例。如果您正苦于以下问题:C++ MamdaOrderBook::clear方法的具体用法?C++ MamdaOrderBook::clear怎么用?C++ MamdaOrderBook::clear使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MamdaOrderBook
的用法示例。
在下文中一共展示了MamdaOrderBook::clear方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: onBookAtomicClear
/**
* Method invoked when an order book is cleared.
*/
void onBookAtomicClear (
MamdaSubscription* subscription,
MamdaBookAtomicListener& listener,
const MamaMsg& msg)
{
mOrderBook.clear();
}
示例2: clear
void MamdaQuoteToBookListenerImpl::clear()
{
acquireLock();
mQuoteCache.initialize();
mEventSeqNum = 0;
mGapBegin = 0;
mGapEnd = 0;
mFullBook->clear();
releaseLock();
}
示例3: 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();
}
示例4: onBookAtomicBeginBook
/**
* Method invoked before we start processing the first level in a message.
* The book should be cleared when isRecap == true.
*/
void onBookAtomicBeginBook (
MamdaSubscription* subscription,
MamdaBookAtomicListener& listener,
bool isRecap)
{
cout<< "BOOK BEGIN\n";
if(isRecap)
mOrderBook.clear();
if(mOrderBook.getQuality() == MAMA_QUALITY_OK)
{
if(isRecap)
{
cout << "RECAP!!!\n";
}
else
{
cout << "DELTA!!!\n";
}
}
}
示例5: onTimer
void BookPublisher::onTimer (MamaTimer* timer)
{
if (!mPublishing) return;
// On every timer update we take the next order from the orderArray and processEntries
// clear book when at end of orderArray
// To avoid editing the book while publishing using multiple threads, we need to have a
// lock during the book editing functionality and also when sending initial/recap data.
// We use the MamdaLock class for this functionality and have two functions called
// acquireLock() and releaseLock() that implement this functionality.
acquireLock();
bool publish = false;
if (10 == mOrderCount)
{
mBook->clear(true);
mOrderCount = 0;
mPublishMsg.updateU8 (NULL, MamaFieldMsgType.mFid, MAMA_MSG_TYPE_BOOK_CLEAR);
publish = true;
}
else
{
// process multiple orders, alike a complex update
processOrder();
processOrder();
// get changes to the book and publish
if (mPublishRecaps)
{
mBook->populateRecap(mPublishMsg);
publish=true;
}
else
{
publish = mBook->populateDelta(mPublishMsg);
}
}
if (publish) publishMessage(NULL);
releaseLock();
}