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


C++ Synchronised::lock方法代码示例

本文整理汇总了C++中Synchronised::lock方法的典型用法代码示例。如果您正苦于以下问题:C++ Synchronised::lock方法的具体用法?C++ Synchronised::lock怎么用?C++ Synchronised::lock使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Synchronised的用法示例。


在下文中一共展示了Synchronised::lock方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: update

/** Update function called from the GUIEngine to handle displaying of the
 *  messages. It will make sure that each message is shown for a certain
 *  amount of time, before it is discarded and the next message (if any)
 *  is displayed.
 *  \param dt Time step size.
 */
void update(float dt)
{
    g_all_messages.lock();
    bool empty = g_all_messages.getData().empty();
    g_all_messages.unlock();
    if (empty) return;

    g_all_messages.lock();
    g_current_display_time += dt;
    if (g_current_display_time > g_max_display_time)
    {
        Message *last = g_all_messages.getData().top();
        g_all_messages.getData().pop();
        delete last;
        if (g_all_messages.getData().empty())
        {
            g_all_messages.unlock();
            return;
        }
        g_current_display_time = -1.0f;
    }

    Message *current = g_all_messages.getData().top();
    // Create new data for the display.
    if (g_current_display_time < 0)
    {
        createLabel(current);
    }
    g_all_messages.unlock();

    GUIEngine::getSkin()->drawMessage(g_container, g_area,
                                      current->getRenderType());
    current->draw();

}   // update
开发者ID:nado,项目名称:stk-code,代码行数:41,代码来源:message_queue.cpp

示例2: getMyAddress

 /** Returns the IP address of this host. We need to return a copy
  *  to make sure the address is thread safe (otherwise it could happen
  *  that e.g. data is taken when the IP address was written, but not
  *  yet the port). */
 const TransportAddress getMyAddress() const
 {
     TransportAddress a;
     m_my_address.lock();
     a.copy(m_my_address.getData());
     m_my_address.unlock();
     return a;
 }   // getMyAddress
开发者ID:Elderme,项目名称:stk-code,代码行数:12,代码来源:network_config.hpp

示例3: add

/** Adds a message to the message queue.
 *  \param mt The MessageType of the message.
 *  \param message The actual message.
 */
void add(MessageType mt, const irr::core::stringw &message)
{
    Message *m = new Message(mt, message);
    g_all_messages.lock();
    if (g_all_messages.getData().empty())
    {
        // Indicate that there is a new message, which should
        // which needs a new label etc. to be computed.
        g_current_display_time =-1.0f;
    }
    g_all_messages.getData().push(m);
    g_all_messages.unlock();
}   // add
开发者ID:nado,项目名称:stk-code,代码行数:17,代码来源:message_queue.cpp

示例4: updatePosition

/** Called when the screen resolution is changed to compute the new
 *  position of the message. */
void updatePosition()
{
    g_all_messages.lock();
    bool empty = g_all_messages.getData().empty();
    if (empty)
    {
        g_all_messages.unlock();
        return;
    }
    Message *last = g_all_messages.getData().top();
    createLabel(last);
    g_all_messages.unlock();
}   // updatePosition
开发者ID:nado,项目名称:stk-code,代码行数:15,代码来源:message_queue.cpp


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