F´ Flight Software - C/C++ Documentation
A framework for building embedded system applications to NASA flight quality standards.
Clist.hpp File Reference
#include <Fw/Types/BasicTypes.hpp>
#include <cstddef>

Go to the source code of this file.

Classes

struct  Svc::Ccsds::Cfdp::CListNode
 Circular linked list node structure. More...
 

Namespaces

 Svc
 RateGroupDivider component implementation.
 
 Svc::Ccsds
 
 Svc::Ccsds::Cfdp
 

Typedefs

using Svc::Ccsds::Cfdp::CListFunc = CListTraverseStatus(*)(CListNode *, void *)
 Callback function type for use with CfdpCListTraverse() More...
 
using Svc::Ccsds::Cfdp::CListTraverseCallback = CListTraverseStatus(*)(CListNode *, void *)
 Callback type for list traversal. More...
 

Enumerations

enum  Svc::Ccsds::Cfdp::CListTraverseStatus : U8 { Svc::Ccsds::Cfdp::CLIST_TRAVERSE_CONTINUE = 0, Svc::Ccsds::Cfdp::CLIST_TRAVERSE_EXIT = 1 }
 Traverse status for circular list operations. More...
 

Functions

static bool Svc::Ccsds::Cfdp::CfdpCListTraverseStatusIsContinue (CListTraverseStatus stat)
 
template<typename Container , typename Member >
constexpr Container * Svc::Ccsds::Cfdp::container_of_cpp (Member *member_ptr, Member Container::*member)
 Obtains a pointer to the parent structure. More...
 
void Svc::Ccsds::Cfdp::CfdpCListInitNode (CListNode *node)
 Initialize a clist node. More...
 
void Svc::Ccsds::Cfdp::CfdpCListInsertFront (CListNode **head, CListNode *node)
 Insert the given node into the front of a list. More...
 
void Svc::Ccsds::Cfdp::CfdpCListInsertBack (CListNode **head, CListNode *node)
 Insert the given node into the back of a list. More...
 
void Svc::Ccsds::Cfdp::CfdpCListRemove (CListNode **head, CListNode *node)
 Remove the given node from the list. More...
 
CListNode * Svc::Ccsds::Cfdp::CfdpCListPop (CListNode **head)
 Remove the first node from a list and return it. More...
 
void Svc::Ccsds::Cfdp::CfdpCListInsertAfter (CListNode **head, CListNode *start, CListNode *after)
 Insert the given node into the last after the given start node. More...
 
void Svc::Ccsds::Cfdp::CfdpCListTraverse (CListNode *start, CListFunc fn, void *context)
 Traverse the entire list, calling the given function on all nodes. More...
 
void Svc::Ccsds::Cfdp::CfdpCListTraverseR (CListNode *end, CListFunc fn, void *context)
 Reverse list traversal, starting from end, calling given function on all nodes. More...
 

Variables

constexpr U8 Svc::Ccsds::Cfdp::CFDP_CLIST_CONT = CLIST_TRAVERSE_CONTINUE
 Constant indicating to continue traversal. More...
 
constexpr U8 Svc::Ccsds::Cfdp::CFDP_CLIST_EXIT = CLIST_TRAVERSE_EXIT
 Constant indicating to stop traversal. More...