RTXI  3.0.0
The Real-Time eXperiment Interface Reference Manual
Public Member Functions
RT::OS::posixFifo Class Reference
Inheritance diagram for RT::OS::posixFifo:
Inheritance graph
Collaboration diagram for RT::OS::posixFifo:
Collaboration graph

Public Member Functions

 posixFifo (size_t size)
 
 posixFifo (const posixFifo &fifo)=delete
 
posixFifooperator= (const posixFifo &fifo)=delete
 
 posixFifo (posixFifo &&)=default
 
posixFifooperator= (posixFifo &&)=default
 
 ~posixFifo () override
 
size_t getCapacity () override
 
int64_t read (void *buf, size_t data_size) override
 
int64_t write (void *buf, size_t data_size) override
 
int64_t readRT (void *buf, size_t data_size) override
 
int64_t writeRT (void *buf, size_t data_size) override
 
void poll () override
 
void close () override
 
int getErrorCode () const
 
- Public Member Functions inherited from RT::OS::Fifo
 Fifo ()=default
 
 Fifo (const Fifo &fifo)=delete
 
Fifooperator= (const Fifo &fifo)=delete
 
 Fifo (Fifo &&)=default
 
Fifooperator= (Fifo &&)=default
 
virtual ~Fifo ()=default
 

Detailed Description

Definition at line 36 of file fifo_posix.cpp.

Constructor & Destructor Documentation

◆ posixFifo() [1/3]

RT::OS::posixFifo::posixFifo(size_t size)
explicit

Definition at line 67 of file fifo_posix.cpp.

Here is the call graph for this function:

◆ posixFifo() [2/3]

RT::OS::posixFifo::posixFifo(const posixFifofifo)
delete

◆ posixFifo() [3/3]

RT::OS::posixFifo::posixFifo(posixFifo && )
default

◆ ~posixFifo()

RT::OS::posixFifo::~posixFifo()
override

Definition at line 98 of file fifo_posix.cpp.

Member Function Documentation

◆ close()

void RT::OS::posixFifo::close()
overridevirtual

Closes the handle stored and prevents reading from the ui side

Implements RT::OS::Fifo.

Definition at line 139 of file fifo_posix.cpp.

◆ getCapacity()

size_t RT::OS::posixFifo::getCapacity()
overridevirtual

Get the memory capacity of the fifo

Returns
The maximum amount of memory the fifo can hold

Implements RT::OS::Fifo.

Definition at line 146 of file fifo_posix.cpp.

◆ getErrorCode()

int RT::OS::posixFifo::getErrorCode()const

Definition at line 151 of file fifo_posix.cpp.

◆ operator=() [1/2]

posixFifo& RT::OS::posixFifo::operator=(const posixFifofifo)
delete

◆ operator=() [2/2]

posixFifo& RT::OS::posixFifo::operator=(posixFifo && )
default

◆ poll()

void RT::OS::posixFifo::poll()
overridevirtual

Checks whether there is available data to read on the non-rt side

This function is primarily for non-rt threads to wait on available data from the rt thread. It blocks (sleeps) the calling thread until woken by data availability. SHOULD NOT RUN IN REAL TIME!!

Implements RT::OS::Fifo.

Definition at line 126 of file fifo_posix.cpp.

Here is the call graph for this function:

◆ read()

int64_t RT::OS::posixFifo::read(void * buf,
size_t data_size 
)
overridevirtual

Read the data stored in the FIFO written by realtime thread. Must be run from non-rt thread.

Parameters
bufThe buffer where the data from the buffer should be written to
data_sizeThe size of the data to read from the buffer
Returns
n Number of elements read. Same as size.

Implements RT::OS::Fifo.

Definition at line 106 of file fifo_posix.cpp.

◆ readRT()

int64_t RT::OS::posixFifo::readRT(void * buf,
size_t data_size 
)
overridevirtual

Read the data stored in the FIFO written by non-RT thread. Must be run from realtime thread.

Parameters
bufThe buffer where the data from the buffer should be written to
data_sizeThe size of the data to read from the buffer
Returns
n Number of elements read. Same as size.

Implements RT::OS::Fifo.

Definition at line 116 of file fifo_posix.cpp.

◆ write()

int64_t RT::OS::posixFifo::write(void * buf,
size_t data_size 
)
overridevirtual

Write to the FIFO storage for the realtime thread. Must be run from non-rt thread.

Parameters
bufThe buffer holding the data to write to the FIFO.
data_sizeThe size of the data to read from the buffer
Returns
n Number of elements written. Same as size.

Implements RT::OS::Fifo.

Definition at line 111 of file fifo_posix.cpp.

◆ writeRT()

int64_t RT::OS::posixFifo::writeRT(void * buf,
size_t data_size 
)
overridevirtual

Write to the FIFO storage for the non-RT thread. Must be run from realtime thread.

Parameters
bufThe buffer holding the data to write to the FIFO.
data_sizeThe size of the data to read from the buffer
Returns
n Number of elements written. Same as size.

Implements RT::OS::Fifo.

Definition at line 121 of file fifo_posix.cpp.


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