ACE_Message_Queue高低水位

来源:互联网 发布:三级域名怎么自动生成 编辑:程序博客网 时间:2024/06/02 17:18

高水为用来定义消息队列什么时候满:最大盛放的字节数

内部消息队列不可能不受控制一直增大,否则内存爆了也不知道。所以要有水位控制,就行日志文件的循环读写一样。


源代码及其注释说明的很清楚:

  /**   * Get high watermark.   */  virtual size_t high_water_mark (void);  /**   * Set the high watermark, which determines how many bytes can be   * stored in a queue before it's considered "full."   */  virtual void high_water_mark (size_t hwm);  /**   * Get low watermark.   */  virtual size_t low_water_mark (void);  /**   * Set the low watermark, which determines how many bytes must be in   * the queue before supplier threads are allowed to enqueue   * additional ACE_Message_Blocks.   */  virtual void low_water_mark (size_t lwm);

使用示例:

SendToServer consumer(NULL,NULL);ProduceAudio producer(NULL,consumer.msg_queue());producer.msg_queue()->high_water_mark((size_t)(1024*1024*2));


0 0
原创粉丝点击