F´ Flight Software - C/C++ Documentation  devel
A framework for building embedded system applications to NASA flight quality standards.
Os::Queue Class Reference

#include <Os/Queue.hpp>

Inheritance diagram for Os::Queue:
Os::IPCQueue

Public Types

enum  QueueStatus {
  QUEUE_OK , QUEUE_NO_MORE_MSGS , QUEUE_UNINITIALIZED , QUEUE_SIZE_MISMATCH ,
  QUEUE_SEND_ERROR , QUEUE_RECEIVE_ERROR , QUEUE_INVALID_PRIORITY , QUEUE_EMPTY_BUFFER ,
  QUEUE_FULL , QUEUE_UNKNOWN_ERROR
}
 
enum  QueueBlocking { QUEUE_BLOCKING , QUEUE_NONBLOCKING }
 

Public Member Functions

 Queue ()
 
virtual ~Queue ()
 
QueueStatus create (const Fw::StringBase &name, NATIVE_INT_TYPE depth, NATIVE_INT_TYPE msgSize)
 create a message queue More...
 
QueueStatus send (const Fw::SerializeBufferBase &buffer, NATIVE_INT_TYPE priority, QueueBlocking block)
 send a message More...
 
QueueStatus receive (Fw::SerializeBufferBase &buffer, NATIVE_INT_TYPE &priority, QueueBlocking block)
 receive a message More...
 
QueueStatus send (const U8 *buffer, NATIVE_INT_TYPE size, NATIVE_INT_TYPE priority, QueueBlocking block)
 send a message More...
 
QueueStatus receive (U8 *buffer, NATIVE_INT_TYPE capacity, NATIVE_INT_TYPE &actualSize, NATIVE_INT_TYPE &priority, QueueBlocking block)
 receive a message More...
 
NATIVE_INT_TYPE getNumMsgs () const
 get the number of messages in the queue More...
 
NATIVE_INT_TYPE getMaxMsgs () const
 get the maximum number of messages (high watermark) More...
 
NATIVE_INT_TYPE getQueueSize () const
 get the queue depth (maximum number of messages queue can hold) More...
 
NATIVE_INT_TYPE getMsgSize () const
 get the message size (maximum message size queue can hold) More...
 
const QueueStringgetName ()
 get the queue name More...
 

Static Public Member Functions

static NATIVE_INT_TYPE getNumQueues ()
 get the number of queues in the system More...
 

Protected Member Functions

QueueStatus createInternal (const Fw::StringBase &name, NATIVE_INT_TYPE depth, NATIVE_INT_TYPE msgSize)
 create a message queue More...
 

Protected Attributes

POINTER_CAST m_handle
 handle for implementation specific queue More...
 
QueueString m_name
 queue name More...
 

Static Protected Attributes

static NATIVE_INT_TYPE s_numQueues = 0
 tracks number of queues in the system More...
 

Detailed Description

Definition at line 24 of file Queue.hpp.

Member Enumeration Documentation

◆ QueueBlocking

Enumerator
QUEUE_BLOCKING 

Queue receive blocks until a message arrives.

QUEUE_NONBLOCKING 

Queue receive always returns even if there is no message.

Definition at line 40 of file Queue.hpp.

◆ QueueStatus

Enumerator
QUEUE_OK 

message sent/received okay

QUEUE_NO_MORE_MSGS 

If non-blocking, all the messages have been drained.

QUEUE_UNINITIALIZED 

Queue wasn't initialized successfully.

QUEUE_SIZE_MISMATCH 

attempted to send or receive with buffer too large, too small

QUEUE_SEND_ERROR 

message send error

QUEUE_RECEIVE_ERROR 

message receive error

QUEUE_INVALID_PRIORITY 

invalid priority requested

QUEUE_EMPTY_BUFFER 

supplied buffer is empty

QUEUE_FULL 

queue was full when attempting to send a message

QUEUE_UNKNOWN_ERROR 

Unexpected error; can't match with returns.

Definition at line 27 of file Queue.hpp.

Constructor & Destructor Documentation

◆ Queue()

Os::Queue::Queue ( )

Definition at line 38 of file Queue.cpp.

◆ ~Queue()

Os::Queue::~Queue ( )
virtual

Definition at line 65 of file Queue.cpp.

Member Function Documentation

◆ create()

Queue::QueueStatus Os::Queue::create ( const Fw::StringBase name,
NATIVE_INT_TYPE  depth,
NATIVE_INT_TYPE  msgSize 
)

create a message queue

Definition at line 41 of file QueueCommon.cpp.

◆ createInternal()

Queue::QueueStatus Os::Queue::createInternal ( const Fw::StringBase name,
NATIVE_INT_TYPE  depth,
NATIVE_INT_TYPE  msgSize 
)
protected

create a message queue

Internal method used for creating allowing alternate implementations to implement different creation behavior without needing to duplicate the majority of the creation functionality.

Parameters
namename of queue
depthdepth of queue
msgSizesize of a message stored on queue
Returns
queue creation status

Definition at line 42 of file Queue.cpp.

◆ getMaxMsgs()

NATIVE_INT_TYPE Os::Queue::getMaxMsgs ( ) const

get the maximum number of messages (high watermark)

Definition at line 222 of file Queue.cpp.

◆ getMsgSize()

NATIVE_INT_TYPE Os::Queue::getMsgSize ( ) const

get the message size (maximum message size queue can hold)

Definition at line 244 of file Queue.cpp.

◆ getName()

const QueueString & Os::Queue::getName ( )

get the queue name

Definition at line 61 of file QueueCommon.cpp.

◆ getNumMsgs()

NATIVE_INT_TYPE Os::Queue::getNumMsgs ( ) const

get the number of messages in the queue

Definition at line 211 of file Queue.cpp.

◆ getNumQueues()

NATIVE_INT_TYPE Os::Queue::getNumQueues ( )
static

get the number of queues in the system

Definition at line 57 of file QueueCommon.cpp.

◆ getQueueSize()

NATIVE_INT_TYPE Os::Queue::getQueueSize ( ) const

get the queue depth (maximum number of messages queue can hold)

Definition at line 233 of file Queue.cpp.

◆ receive() [1/2]

Queue::QueueStatus Os::Queue::receive ( Fw::SerializeBufferBase buffer,
NATIVE_INT_TYPE priority,
QueueBlocking  block 
)

receive a message

Definition at line 22 of file QueueCommon.cpp.

◆ receive() [2/2]

Queue::QueueStatus Os::Queue::receive ( U8 buffer,
NATIVE_INT_TYPE  capacity,
NATIVE_INT_TYPE actualSize,
NATIVE_INT_TYPE priority,
QueueBlocking  block 
)

receive a message

Definition at line 193 of file Queue.cpp.

◆ send() [1/2]

Queue::QueueStatus Os::Queue::send ( const Fw::SerializeBufferBase buffer,
NATIVE_INT_TYPE  priority,
QueueBlocking  block 
)

send a message

Definition at line 13 of file QueueCommon.cpp.

◆ send() [2/2]

Queue::QueueStatus Os::Queue::send ( const U8 buffer,
NATIVE_INT_TYPE  size,
NATIVE_INT_TYPE  priority,
QueueBlocking  block 
)

send a message

Definition at line 104 of file Queue.cpp.

Member Data Documentation

◆ m_handle

POINTER_CAST Os::Queue::m_handle
protected

handle for implementation specific queue

Definition at line 75 of file Queue.hpp.

◆ m_name

QueueString Os::Queue::m_name
protected

queue name

Definition at line 76 of file Queue.hpp.

◆ s_numQueues

NATIVE_INT_TYPE Os::Queue::s_numQueues = 0
staticprotected

tracks number of queues in the system

Definition at line 80 of file Queue.hpp.


The documentation for this class was generated from the following files: