当前位置: 首页>>代码示例>>C++>>正文


C++ MamdaOrderBook::clear方法代码示例

本文整理汇总了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();
 }
开发者ID:OpenMAMA,项目名称:OpenMAMA,代码行数:10,代码来源:atomicbookbuilder.cpp

示例2: clear

void MamdaQuoteToBookListenerImpl::clear()
{
    acquireLock();
    mQuoteCache.initialize();
    mEventSeqNum = 0;
    mGapBegin = 0;
    mGapEnd = 0;
    mFullBook->clear();
    releaseLock();
}
开发者ID:MattMulhern,项目名称:OpenMamaCassandra,代码行数:10,代码来源:MamdaQuoteToBookListener.cpp

示例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();
}
开发者ID:MattMulhern,项目名称:OpenMamaCassandra,代码行数:48,代码来源:MamdaQuoteToBookListener.cpp

示例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";
            }
        }
    }
开发者ID:OpenMAMA,项目名称:OpenMAMA,代码行数:26,代码来源:atomicbookbuilder.cpp

示例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();
}
开发者ID:reed-jpm-alpert,项目名称:OpenMAMA.233,代码行数:38,代码来源:bookpublisher.cpp


注:本文中的MamdaOrderBook::clear方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。