⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queue.cc

📁 VRTX 商用嵌入式实时操作系统
💻 CC
字号:
/***************************************************************************
*
*		Copyright (c) 1993 READY SYSTEMS CORPORATION.
*
*	All rights reserved. READY SYSTEMS' source code is an unpublished
*	work and the use of a copyright notice does not imply otherwise.
*	This source code contains confidential, trade secret material of
*	READY SYSTEMS. Any attempt or participation in deciphering, decoding,
*	reverse engineering or in any way altering the source code is
*	strictly prohibited, unless the prior written consent of
*	READY SYSTEMS is obtained.
*
*
*	Module Name:		queue.cc
*
*	Identification:		@(#) 1.5 queue.cc
*
*	Date:			5/3/93  14:57:26
*
****************************************************************************
*/

#include "queue.h"

Queue::Queue (unsigned count, int pend_order, int id)
{
  int err;
  if (id == -1)
    qid = sc_qecreate (id, count, pend_order, &err);
  else {
    sc_qecreate (id, count, pend_order, &err);
    qid = id;
  }
}

Queue::~Queue ()
{
  int err;
  sc_qdelete (qid, 1, &err);
}

int
Queue::receive (void *&message, unsigned long timeout)
{
  int err;
  message = sc_qpend (qid, timeout, &err);
  return err == RET_OK;
}

int
Queue::send (void *message)
{
  int err;
  sc_qpost (qid, (char *) message, &err);
  return err == RET_OK;
}

int
Queue::jam (void *message)
{
  int err;
  sc_qjam (qid, (char *) message, &err);
  return err == RET_OK;
}

void
Queue::broadcast (void *message)
{
  int err;
  sc_qbrdcst (qid, (char *) message, &err);
}

int 
Queue::count ()
{
  int err, count;
  (void) sc_qinquiry (qid, &count, &err);
  return count;
}

int
Queue::id ()
{
  return qid;
}

int
Queue::first (void *&message)
{
  int err, count;
  message = sc_qinquiry (qid, &count, &err);
  return err == RET_OK;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -