DAWorkbench 0.0.1
DAWorkbench API
载入中...
搜索中...
未找到
DA::DAMessageQueueProxy类 参考

这是一个全局的日志队列,所有的qdebug相关的消息都会推入这个队列中 更多...

#include <DAMessageQueueProxy.h>

类 DA::DAMessageQueueProxy 继承关系图:

class  PrivateData
 

信号

void messageQueueAppended ()
 有消息插入
 
void messageQueueSizeChanged (int newSize)
 消息的队列尺寸发生了变化
 

Public 成员函数

 DAMessageQueueProxy (QObject *par=nullptr)
 
void setEmitInterval (int ms)
 设置信号发射间隔
 
int getEmitInterval () const
 获取信号发射间隔,次间隔只有在设置了惰性触发时起作用
 
void append (const DAMessageLogItem &item)
 
DAMessageLogItem at (int index) const
 
int size () const
 
void setLazyEmit (bool on=true)
 设置信号惰性触发
 
bool isLazyEmit () const
 判断信号是否惰性触发
 
void clear ()
 清空队列
 

静态 Public 成员函数

static void setGlobalQueueCapacity (int c)
 设置全局队列的容量
 
static int getGlobalQueueCapacity ()
 获取全局队列的容量
 

Protected 成员函数

void emitSignal (int type)
 

友元

class DAThreadSafeMessageQueue_Private
 

详细描述

这是一个全局的日志队列,所有的qdebug相关的消息都会推入这个队列中

此队列提供一个惰性的信号,所谓惰性信号是指不会一直触发,而是会限制触发的频度,避免过多的消息导致 系统缓慢,默认每个信号间隔1s,可以通过setSignalEmitInterval来改变

注解
由于使用了惰性信号,此类的信号只会触发一个,例如
参见
messageQueueSizeChanged 是在队列尺寸发生变化时触发, 而
messageQueueAppended 是在有消息插入的时候触发,理论上,
messageQueueSizeChanged 触发,那么必然
messageQueueAppended 会被触发,但是,由于内部会有一个全局的间隔时间限制了信号的触发频率,因此,
messageQueueSizeChanged 触发后 并不会触发
messageQueueAppended

成员函数说明

◆ getEmitInterval()

int DA::DAMessageQueueProxy::getEmitInterval ( ) const

获取信号发射间隔,次间隔只有在设置了惰性触发时起作用

返回

◆ getGlobalQueueCapacity()

int DA::DAMessageQueueProxy::getGlobalQueueCapacity ( )
static

获取全局队列的容量

返回

◆ isLazyEmit()

bool DA::DAMessageQueueProxy::isLazyEmit ( ) const

判断信号是否惰性触发

返回

◆ messageQueueAppended

void DA::DAMessageQueueProxy::messageQueueAppended ( )
signal

有消息插入

注解
此信号触发
参见
messageQueueSizeChanged 信号就不会触发,这两个是互斥
注解
正常会先触发
参见
messageQueueSizeChanged 信号,等全局队列缓冲满后才会触发
messageQueueAppended 信号

◆ messageQueueSizeChanged

void DA::DAMessageQueueProxy::messageQueueSizeChanged ( int  newSize)
signal

消息的队列尺寸发生了变化

参数
newSize消息队列的尺寸
注解
此信号触发
参见
messageQueueAppended 信号就不会触发,这两个是互斥
注解
正常会先触发
参见
messageQueueSizeChanged 信号,等全局队列缓冲满后才会触发
messageQueueAppended 信号

◆ setEmitInterval()

void DA::DAMessageQueueProxy::setEmitInterval ( int  ms)

设置信号发射间隔

在设置了lazyEmit才会起作用

参数
ms

◆ setGlobalQueueCapacity()

void DA::DAMessageQueueProxy::setGlobalQueueCapacity ( int  c)
static

设置全局队列的容量

参数
c

◆ setLazyEmit()

void DA::DAMessageQueueProxy::setLazyEmit ( bool  on = true)

设置信号惰性触发

参数
on

该类的文档由以下文件生成: