webrtc MessageQueue 處理過(guò)程

Message.png

MessageQueue中包含兩種數(shù)據(jù)隊(duì)列
MessageList msgq_ ;

typedef std::list<Message> MessageList;

PriorityQueue dmsgq_;//優(yōu)先隊(duì)列

 class PriorityQueue : public std::priority_queue<DelayedMessage> {
   public:
    container_type& container() { return c; }
    void reheap() { make_heap(c.begin(), c.end(), comp); }
  };

優(yōu)先隊(duì)列繼承自 std::priority_queue
DelayerMessage實(shí)現(xiàn)

class DelayedMessage {
 public:
  DelayedMessage(int64_t delay,
                 int64_t trigger,
                 uint32_t num,
                 const Message& msg)
      : cmsDelay_(delay), msTrigger_(trigger), num_(num), msg_(msg) {}

  bool operator< (const DelayedMessage& dmsg) const {
    return (dmsg.msTrigger_ < msTrigger_)
           || ((dmsg.msTrigger_ == msTrigger_) && (dmsg.num_ < num_));
  }

  int64_t cmsDelay_;  // for debugging
  int64_t msTrigger_;
  uint32_t num_;
  Message msg_;
};

重載 小于操作符operator< (),sorted by trigger time,小值在前。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 容器的概念所謂STL容器,即是將最常運(yùn)用的一些數(shù)據(jù)結(jié)構(gòu)(data structures)實(shí)現(xiàn)出來(lái)。容器是指容納特定...
    飯飯H閱讀 443評(píng)論 0 0
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 3,215評(píng)論 0 3
  • 個(gè)人筆記,方便自己查閱使用 Contents Java LangAssignment, ReferenceData...
    freenik閱讀 1,529評(píng)論 0 6
  • 前言 MessageQueue提供了兩方面的功能,消息循環(huán)中的消息隊(duì)列功能以及通過(guò)持有SocketServer對(duì)象...
    ice_ly000閱讀 1,860評(píng)論 0 5
  • messagequeue webrtc/base/messagequeue.h /messagequeue.cc ...
    落冬風(fēng)閱讀 2,382評(píng)論 0 5

友情鏈接更多精彩內(nèi)容