caffeine-sal 0.1.17
Header-only polymorphic middleware services layer for the Caffeine Framework
Loading...
Searching...
No Matches
Data Structures | Macros | Typedefs | Functions
cfn_sal_utl_collection.h File Reference

Unified polymorphic interface for data collections (Ring Buffers, Lists, Queues). More...

#include "cfn_sal.h"

Go to the source code of this file.

Data Structures

struct  cfn_sal_utl_collection_config_t
 Collection configuration (e.g. item size). More...
 
struct  cfn_sal_utl_collection_api_s
 Collection Virtual Method Table (VMT). More...
 

Macros

#define CFN_SAL_UTL_TYPE_COLLECTION   CFN_SAL_TYPE('C', 'O', 'L')
 FourCC type for Collections.
 

Typedefs

typedef struct cfn_sal_utl_collection_s cfn_sal_utl_collection_t
 
typedef struct cfn_sal_utl_collection_api_s cfn_sal_utl_collection_api_t
 
typedef void(* cfn_sal_utl_collection_callback_t) (cfn_sal_utl_collection_t *driver, uint32_t event_mask, uint32_t error_mask, void *user_arg)
 Collection callback signature.
 

Functions

 CFN_HAL_VMT_CHECK (struct cfn_sal_utl_collection_api_s)
 
 CFN_SAL_CREATE_DRIVER_TYPE (sal_utl_collection, cfn_sal_utl_collection_config_t, cfn_sal_utl_collection_api_t, cfn_sal_phy_t, cfn_sal_utl_collection_callback_t)
 
CFN_HAL_INLINE void cfn_sal_utl_collection_populate (cfn_sal_utl_collection_t *driver, uint32_t peripheral_id, void *dependency, const cfn_sal_utl_collection_api_t *api, const cfn_sal_phy_t *phy, const cfn_sal_utl_collection_config_t *config, cfn_sal_utl_collection_callback_t callback, void *user_arg)
 
cfn_hal_error_code_t cfn_sal_utl_collection_construct (cfn_sal_utl_collection_t *driver, const cfn_sal_utl_collection_config_t *config, const cfn_sal_phy_t *phy, void *dependency, cfn_sal_utl_collection_callback_t callback, void *user_arg)
 
cfn_hal_error_code_t cfn_sal_utl_collection_destruct (cfn_sal_utl_collection_t *driver)
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_init (cfn_sal_utl_collection_t *driver)
 Initializes the collection.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_deinit (cfn_sal_utl_collection_t *driver)
 Deinitializes the collection.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_config_set (cfn_sal_utl_collection_t *driver, const cfn_sal_utl_collection_config_t *config)
 Sets the collection configuration.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_config_get (cfn_sal_utl_collection_t *driver, cfn_sal_utl_collection_config_t *config)
 Gets the current collection configuration.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_callback_register (cfn_sal_utl_collection_t *driver, cfn_sal_utl_collection_callback_t callback, void *user_arg)
 Registers a callback for collection events and errors.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_power_state_set (cfn_sal_utl_collection_t *driver, cfn_hal_power_state_t state)
 Sets the collection power state.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_event_enable (cfn_sal_utl_collection_t *driver, uint32_t event_mask)
 Enables one or more collection nominal events.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_event_disable (cfn_sal_utl_collection_t *driver, uint32_t event_mask)
 Disables one or more collection nominal events.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_event_get (cfn_sal_utl_collection_t *driver, uint32_t *event_mask)
 Retrieves the current collection nominal event status.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_error_enable (cfn_sal_utl_collection_t *driver, uint32_t error_mask)
 Enables one or more collection exception errors.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_error_disable (cfn_sal_utl_collection_t *driver, uint32_t error_mask)
 Disables one or more collection exception errors.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_error_get (cfn_sal_utl_collection_t *driver, uint32_t *error_mask)
 Retrieves the current collection exception error status.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_push_back (cfn_sal_utl_collection_t *driver, const void *item)
 Adds an item to the end of the collection.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_push_front (cfn_sal_utl_collection_t *driver, const void *item)
 Adds an item to the front of the collection.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_insert_at (cfn_sal_utl_collection_t *driver, size_t index, const void *item)
 Inserts an item at a specific index.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_pop_back (cfn_sal_utl_collection_t *driver, void *item_out)
 Removes and retrieves an item from the back.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_pop_front (cfn_sal_utl_collection_t *driver, void *item_out)
 Removes and retrieves an item from the front.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_remove_at (cfn_sal_utl_collection_t *driver, size_t index, void *item_out)
 Removes and retrieves an item at a specific index.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_peek_back (cfn_sal_utl_collection_t *driver, void *item_out)
 Peeks at an item from the back.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_peek_front (cfn_sal_utl_collection_t *driver, void *item_out)
 Peeks at an item from the front.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_peek_at (cfn_sal_utl_collection_t *driver, size_t index, void *item_out)
 Peeks at an item at a specific index.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_get_size (cfn_sal_utl_collection_t *driver, size_t *size_out)
 Retrieves the current number of items.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_get_capacity (cfn_sal_utl_collection_t *driver, size_t *capacity_out)
 Retrieves the capacity of the collection.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_is_empty (cfn_sal_utl_collection_t *driver, bool *is_empty_out)
 Checks if the collection is empty.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_is_full (cfn_sal_utl_collection_t *driver, bool *is_full_out)
 Checks if the collection is full.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_clear (cfn_sal_utl_collection_t *driver)
 Clears all items from the collection.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_find (cfn_sal_utl_collection_t *driver, const void *item, size_t *index_out)
 Finds an item in the collection and retrieves its index.
 
CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_sort (cfn_sal_utl_collection_t *driver, void *compare_func)
 Sorts the collection using the provided comparison function.
 

Detailed Description

Unified polymorphic interface for data collections (Ring Buffers, Lists, Queues).

Macro Definition Documentation

◆ CFN_SAL_UTL_TYPE_COLLECTION

#define CFN_SAL_UTL_TYPE_COLLECTION   CFN_SAL_TYPE('C', 'O', 'L')

FourCC type for Collections.

Typedef Documentation

◆ cfn_sal_utl_collection_api_t

◆ cfn_sal_utl_collection_callback_t

typedef void(* cfn_sal_utl_collection_callback_t) (cfn_sal_utl_collection_t *driver, uint32_t event_mask, uint32_t error_mask, void *user_arg)

Collection callback signature.

◆ cfn_sal_utl_collection_t

typedef struct cfn_sal_utl_collection_s cfn_sal_utl_collection_t

Function Documentation

◆ CFN_HAL_VMT_CHECK()

CFN_HAL_VMT_CHECK ( struct cfn_sal_utl_collection_api_s  )

◆ CFN_SAL_CREATE_DRIVER_TYPE()

CFN_SAL_CREATE_DRIVER_TYPE ( sal_utl_collection  ,
cfn_sal_utl_collection_config_t  ,
cfn_sal_utl_collection_api_t  ,
cfn_sal_phy_t  ,
cfn_sal_utl_collection_callback_t   
)

◆ cfn_sal_utl_collection_callback_register()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_callback_register ( cfn_sal_utl_collection_t driver,
cfn_sal_utl_collection_callback_t  callback,
void *  user_arg 
)

Registers a callback for collection events and errors.

◆ cfn_sal_utl_collection_clear()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_clear ( cfn_sal_utl_collection_t driver)

Clears all items from the collection.

◆ cfn_sal_utl_collection_config_get()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_config_get ( cfn_sal_utl_collection_t driver,
cfn_sal_utl_collection_config_t config 
)

Gets the current collection configuration.

◆ cfn_sal_utl_collection_config_set()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_config_set ( cfn_sal_utl_collection_t driver,
const cfn_sal_utl_collection_config_t config 
)

Sets the collection configuration.

◆ cfn_sal_utl_collection_construct()

cfn_hal_error_code_t cfn_sal_utl_collection_construct ( cfn_sal_utl_collection_t driver,
const cfn_sal_utl_collection_config_t config,
const cfn_sal_phy_t phy,
void *  dependency,
cfn_sal_utl_collection_callback_t  callback,
void *  user_arg 
)

◆ cfn_sal_utl_collection_deinit()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_deinit ( cfn_sal_utl_collection_t driver)

Deinitializes the collection.

◆ cfn_sal_utl_collection_destruct()

cfn_hal_error_code_t cfn_sal_utl_collection_destruct ( cfn_sal_utl_collection_t driver)

◆ cfn_sal_utl_collection_error_disable()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_error_disable ( cfn_sal_utl_collection_t driver,
uint32_t  error_mask 
)

Disables one or more collection exception errors.

◆ cfn_sal_utl_collection_error_enable()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_error_enable ( cfn_sal_utl_collection_t driver,
uint32_t  error_mask 
)

Enables one or more collection exception errors.

◆ cfn_sal_utl_collection_error_get()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_error_get ( cfn_sal_utl_collection_t driver,
uint32_t *  error_mask 
)

Retrieves the current collection exception error status.

◆ cfn_sal_utl_collection_event_disable()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_event_disable ( cfn_sal_utl_collection_t driver,
uint32_t  event_mask 
)

Disables one or more collection nominal events.

◆ cfn_sal_utl_collection_event_enable()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_event_enable ( cfn_sal_utl_collection_t driver,
uint32_t  event_mask 
)

Enables one or more collection nominal events.

◆ cfn_sal_utl_collection_event_get()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_event_get ( cfn_sal_utl_collection_t driver,
uint32_t *  event_mask 
)

Retrieves the current collection nominal event status.

◆ cfn_sal_utl_collection_find()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_find ( cfn_sal_utl_collection_t driver,
const void *  item,
size_t *  index_out 
)

Finds an item in the collection and retrieves its index.

◆ cfn_sal_utl_collection_get_capacity()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_get_capacity ( cfn_sal_utl_collection_t driver,
size_t *  capacity_out 
)

Retrieves the capacity of the collection.

◆ cfn_sal_utl_collection_get_size()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_get_size ( cfn_sal_utl_collection_t driver,
size_t *  size_out 
)

Retrieves the current number of items.

◆ cfn_sal_utl_collection_init()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_init ( cfn_sal_utl_collection_t driver)

Initializes the collection.

◆ cfn_sal_utl_collection_insert_at()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_insert_at ( cfn_sal_utl_collection_t driver,
size_t  index,
const void *  item 
)

Inserts an item at a specific index.

◆ cfn_sal_utl_collection_is_empty()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_is_empty ( cfn_sal_utl_collection_t driver,
bool *  is_empty_out 
)

Checks if the collection is empty.

◆ cfn_sal_utl_collection_is_full()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_is_full ( cfn_sal_utl_collection_t driver,
bool *  is_full_out 
)

Checks if the collection is full.

◆ cfn_sal_utl_collection_peek_at()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_peek_at ( cfn_sal_utl_collection_t driver,
size_t  index,
void *  item_out 
)

Peeks at an item at a specific index.

◆ cfn_sal_utl_collection_peek_back()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_peek_back ( cfn_sal_utl_collection_t driver,
void *  item_out 
)

Peeks at an item from the back.

◆ cfn_sal_utl_collection_peek_front()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_peek_front ( cfn_sal_utl_collection_t driver,
void *  item_out 
)

Peeks at an item from the front.

◆ cfn_sal_utl_collection_pop_back()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_pop_back ( cfn_sal_utl_collection_t driver,
void *  item_out 
)

Removes and retrieves an item from the back.

◆ cfn_sal_utl_collection_pop_front()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_pop_front ( cfn_sal_utl_collection_t driver,
void *  item_out 
)

Removes and retrieves an item from the front.

◆ cfn_sal_utl_collection_populate()

CFN_HAL_INLINE void cfn_sal_utl_collection_populate ( cfn_sal_utl_collection_t driver,
uint32_t  peripheral_id,
void *  dependency,
const cfn_sal_utl_collection_api_t api,
const cfn_sal_phy_t phy,
const cfn_sal_utl_collection_config_t config,
cfn_sal_utl_collection_callback_t  callback,
void *  user_arg 
)

◆ cfn_sal_utl_collection_power_state_set()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_power_state_set ( cfn_sal_utl_collection_t driver,
cfn_hal_power_state_t  state 
)

Sets the collection power state.

◆ cfn_sal_utl_collection_push_back()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_push_back ( cfn_sal_utl_collection_t driver,
const void *  item 
)

Adds an item to the end of the collection.

◆ cfn_sal_utl_collection_push_front()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_push_front ( cfn_sal_utl_collection_t driver,
const void *  item 
)

Adds an item to the front of the collection.

◆ cfn_sal_utl_collection_remove_at()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_remove_at ( cfn_sal_utl_collection_t driver,
size_t  index,
void *  item_out 
)

Removes and retrieves an item at a specific index.

◆ cfn_sal_utl_collection_sort()

CFN_HAL_INLINE cfn_hal_error_code_t cfn_sal_utl_collection_sort ( cfn_sal_utl_collection_t driver,
void *  compare_func 
)

Sorts the collection using the provided comparison function.