查询一个消息队列的状态,OSQQuery()
来源:互联网 发布:python进阶书籍推荐 编辑:程序博客网 时间:2024/05/25 08:13
OSQQuery()函数使用户可以查询一个消息队列的当前状态。程序清单 L6.27是该函数的源代码。OSQQuery()需要两个参数:一个是指向消息队列的指针pevent。它是在建立一个消息队列时,由OSQCreate()函数返回的;另一个是指向OS_Q_DATA(见uCOS_II.H)数据结构的指针pdata。该结构包含了有关消息队列的信息。在调用OSQQuery()函数之前,必须先定义该数据结构变量。OS_Q_DATA结构包含下面的几个域:.OSMsg 如果消息队列中有消息,它包含指针.OSQOut所指向的队列单元中的内容。如果队列是空的,.OSMsg包含一个NULL指针。.OSNMsgs是消息队列中的消息数(.OSQEntries的拷贝)。.OSQSize是消息队列的总的容量.OSEventTbl[]和.OSEventGrp是消息队列的等待任务列表。通过它们, OSQQuery()的调用函数可以得到等待该消息队列中的消息的任务总数。OSQQuery()函数首先检查pevent指针指向的事件控制块是一个消息队列[L6.27(1)],然后复制等待任务列表[L6.27(2)]。如果消息队列中有消息[L6.27(3)],.OSQOut指向的队列单元中的内容被复制到OS_Q_DATA结构中[L6.27(4)],否则的话,就复制一个NULL指针[L6.27(5)]。最后,复制消息队列中的消息数和消息队列的容量大小[L6.27(6)]。程序清单 L6.27 程序消息队列的状态INT8U OSQQuery (OS_EVENT *pevent, OS_Q_DATA *pdata){ OS_Q *pq; INT8U i; INT8U *psrc; INT8U *pdest; OS_ENTER_CRITICAL(); if (pevent->OSEventType != OS_EVENT_TYPE_Q) { (1) OS_EXIT_CRITICAL(); return (OS_ERR_EVENT_TYPE); } pdata->OSEventGrp = pevent->OSEventGrp; (2) psrc = &pevent->OSEventTbl[0]; pdest = &pdata->OSEventTbl[0]; for (i = 0; i < OS_EVENT_TBL_SIZE; i++) { *pdest++ = *psrc++; } pq = (OS_Q *)pevent->OSEventPtr; if (pq->OSQEntries > 0) { (3) pdata->OSMsg = pq->OSQOut; (4) } else { pdata->OSMsg = (void *)0; (5) } pdata->OSNMsgs = pq->OSQEntries; (6) pdata->OSQSize = pq->OSQSize; OS_EXIT_CRITICAL(); return (OS_NO_ERR);}
0 0
- 查询一个消息队列的状态,OSQQuery()
- 查询一个消息队列的状态,OSQQuery()
- 一个com+消息队列的例子
- 一个消息队列类的实现C++
- 一个简单的C#消息队列示例
- 一个快速的消息队列(最大堆)
- 一个简单的C#消息队列示例
- 一个消息队列很好的例子
- 一个轻便易用的消息队列
- 消息队列状态:struct msqid_ds
- 查询一个邮箱的状态, OSMboxQuery()
- 查询一个邮箱的状态, OSMboxQuery()
- 查询一个内存分区的状态,OSMemQuery()
- activeMq消息队列查询统计
- ActiveMQ发消息、收消息、持久化,查询队列剩余消息数、出队数的实现
- ActiveMQ发消息、收消息、持久化,查询队列剩余消息数、出队数的实现
- ActiveMQ发消息、收消息、持久化,查询队列剩余消息数、出队数的实现
- HTTP 状态消息、code状态码查询
- 通过 PDFRenderer 实现预览PDF 功能
- Java反射机制基本用法
- php生车csv文件打开乱码的解决
- 编程,我对你琢磨不透,让我怎么爱你?
- idea 查看java字节码
- 查询一个消息队列的状态,OSQQuery()
- 一些Java的知识点扫盲
- Unity3D学习笔记--roll a ball无法移动
- Android Fragment的使用 二 事务函数详解
- Java继承-子类默认在构造函数中用super()调用父类构造函数
- mybatis异常invalid comparison: java.util.Date and java.lang.String
- linux之ps命令--进程快照
- 容器生态系统 (续)
- Android开发之pdf