日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ACE-Task结构介绍(二)——消息块ACE_Message_Block结构的分析

發布時間:2025/3/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ACE-Task结构介绍(二)——消息块ACE_Message_Block结构的分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

消息塊ACE_Message_Block結構的分析

  • 包含一個指向帶引用計數功能的ACE_Data_Block對象,該對象指向正在的數據緩沖區,這樣可以在ACE_Message_Block對象之間靈活、高效地共享數據
  • 一個或多個ACE_Message_Blocks對象可以連接起來組成一條鏈
  • ACE_Message_Blocks對象可以連接起來組成一個雙向的鏈表,進而形成消息隊列
  • 1 class ACE_Export ACE_Message_Block 2 { 3 public: 4 friend class ACE_Data_Block; 5 /******************************************************* 6 * 函數聲明 7 *******************************************************/ 8 /// Pointer to beginning of next read. 9 /// 數據讀指針,實際上是一個相對起始地址的偏移量 10 size_t rd_ptr_; 11 12 /// Pointer to beginning of next write. 13 /// 數據寫指針,實際上是一個相對起始地址的偏移量 14 size_t wr_ptr_; 15 16 /// Priority of message. 17 /// 表示消息的優先級,用于優先級消息隊列 18 unsigned long priority_; 19 20 #if defined (ACE_HAS_TIMED_MESSAGE_BLOCKS) 21 /// Execution time associated with the message. 22 /// 消息塊的時間屬性,用于實時消息隊列 23 ACE_Time_Value execution_time_; 24 25 /// Absolute deadline time for message. 26 ACE_Time_Value deadline_time_; 27 #endif /* ACE_HAS_TIMED_MESSAGE_BLOCKS */ 28 29 // = Links to other ACE_Message_Block *s. 30 /// Pointer to next message block in the chain. 31 /// 消息鏈指針,多個消息塊可以連在一起,構成一個消息塊鏈 32 ACE_Message_Block *cont_; 33 34 /// Pointer to next message in the list. 35 /// 表示后一個消息指針 36 ACE_Message_Block *next_; 37 38 /// Pointer to previous message in the list. 39 /// 前一個消息指針 40 ACE_Message_Block *prev_; 41 42 /// Misc flags (e.g., DONT_DELETE and USER_FLAGS). 43 /// 是ACE_Data_Block刪除標志,表示該實例下的data_block_是否要刪除 44 ACE_Message_Block::Message_Flags flags_; 45 46 /// Pointer to the reference counted data structure that contains the 47 /// actual memory buffer. 48 /// 數據塊指針 49 ACE_Data_Block *data_block_; 50 51 /// The allocator used to destroy ourselves when release is called 52 /// and create new message blocks on duplicate. 53 /// 消息塊內存分配器 54 ACE_Allocator *message_block_allocator_; 55 56 private: 57 // = Disallow these operations for now (use <clone> instead). 58 ACE_Message_Block &operator= (const ACE_Message_Block &); 59 ACE_Message_Block (const ACE_Message_Block &); 60 };
  • 每次寫入數據時,寫指針會偏移實際寫入數據的長度,每次讀出數據時,讀指針會偏移實際讀出數據的長度。它們的差就是當前消息塊中含有的數據量。
  • ACE_Message_Block和ACE_Data_Block結構關系如圖所示
  • ?

    總結

    以上是生活随笔為你收集整理的ACE-Task结构介绍(二)——消息块ACE_Message_Block结构的分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。