SatNOGS-COMMS  4.1.0
A COMMS subsystem for CubeSats
Loading...
Searching...
No Matches
satnogs::comms::lib::bsp::imsgq< T > Class Template Referenceabstract

Message queue device abstraction. More...

#include <msgq.hpp>

Inheritance diagram for satnogs::comms::lib::bsp::imsgq< T >:
satnogs::comms::lib::bsp::msgq< T, LEN > satnogs::comms::msgq< T, LEN >

Public Member Functions

 imsgq (size_t len)
 Constructs an imsgq object with a specified maximum size.
 imsgq (const imsgq &)=delete
size_t max_size () const
 A method that returns the maximum size of the message queue.
virtual size_t size ()=0
 A virtual method that returns the current number of messages in the queue.
virtual int put (const T &msg, size_t timeout_ms)=0
 A virtual method that enqueues a message into the queue.
virtual int put_isr (const T &msg)=0
 A virtual method that enqueues a message into the queue from an interrupt context.
virtual int peek (T *msg)=0
 A virtual method that peeks at the next message in the queue without removing it.
virtual int get (T *msg, size_t timeout_ms)=0
 A virtual method that retrieves a message from the queue.
virtual int get_isr (T *msg)=0
 A virtual method that retrieves a message from the queue from an interrupt context.

Protected Attributes

const size_t m_len

Detailed Description

template<typename T>
class satnogs::comms::lib::bsp::imsgq< T >

Message queue device abstraction.

This template class provides a generic message queue abstraction for messages of type T.

Warning
Depending on the target platform/RTOS users are expected to define a class that inherits this one and implement at least the pure virtual methods
Template Parameters
TThe type of the messages stored in the queue

Definition at line 41 of file msgq.hpp.

Constructor & Destructor Documentation

◆ imsgq() [1/2]

template<typename T>
satnogs::comms::lib::bsp::imsgq< T >::imsgq ( size_t len)
inline

Constructs an imsgq object with a specified maximum size.

Parameters
lenThe maximum number of messages the queue can hold.

Definition at line 49 of file msgq.hpp.

◆ imsgq() [2/2]

template<typename T>
satnogs::comms::lib::bsp::imsgq< T >::imsgq ( const imsgq< T > & )
delete

Member Function Documentation

◆ get()

template<typename T>
virtual int satnogs::comms::lib::bsp::imsgq< T >::get ( T * msg,
size_t timeout_ms )
pure virtual

A virtual method that retrieves a message from the queue.

Parameters
msgPointer to store the retrieved message of type T.
timeout_msThe timeout in milliseconds to wait if the queue is empty.
Returns
success or error code
Note
Must be implemented by the inherited class.

Implemented in satnogs::comms::msgq< T, LEN >.

◆ get_isr()

template<typename T>
virtual int satnogs::comms::lib::bsp::imsgq< T >::get_isr ( T * msg)
pure virtual

A virtual method that retrieves a message from the queue from an interrupt context.

Parameters
msgPointer to store the retrieved message.
Returns
success or error code
Note
Must be implemented by the inherited class.

Implemented in satnogs::comms::msgq< T, LEN >.

◆ max_size()

template<typename T>
size_t satnogs::comms::lib::bsp::imsgq< T >::max_size ( ) const
inline

A method that returns the maximum size of the message queue.

Returns
The maximum number of messages the queue can hold.

Definition at line 59 of file msgq.hpp.

◆ peek()

template<typename T>
virtual int satnogs::comms::lib::bsp::imsgq< T >::peek ( T * msg)
pure virtual

A virtual method that peeks at the next message in the queue without removing it.

Parameters
msgPointer to store the peeked message of type T.
Returns
success or error code
Note
Must be implemented by the inherited class.

Implemented in satnogs::comms::msgq< T, LEN >.

◆ put()

template<typename T>
virtual int satnogs::comms::lib::bsp::imsgq< T >::put ( const T & msg,
size_t timeout_ms )
pure virtual

A virtual method that enqueues a message into the queue.

Parameters
msgThe message of type T to enqueue.
timeout_msThe timeout in milliseconds to wait if the queue is full.
Returns
success or error code
Note
Must be implemented by the inherited class.

Implemented in satnogs::comms::msgq< T, LEN >.

◆ put_isr()

template<typename T>
virtual int satnogs::comms::lib::bsp::imsgq< T >::put_isr ( const T & msg)
pure virtual

A virtual method that enqueues a message into the queue from an interrupt context.

Parameters
msgThe message of type T to enqueue.
Returns
success or error code
Note
Must be implemented by the inherited class.

Implemented in satnogs::comms::msgq< T, LEN >.

◆ size()

template<typename T>
virtual size_t satnogs::comms::lib::bsp::imsgq< T >::size ( )
pure virtual

A virtual method that returns the current number of messages in the queue.

Returns
The number of messages currently in the queue.
Note
Must be implemented by the inherited class.

Implemented in satnogs::comms::msgq< T, LEN >.

Member Data Documentation

◆ m_len

template<typename T>
const size_t satnogs::comms::lib::bsp::imsgq< T >::m_len
protected

Definition at line 133 of file msgq.hpp.


The documentation for this class was generated from the following file:
  • libsatnogs-comms/include/satnogs-comms-lib/bsp/msgq.hpp