Source code for elos/processfilter/processfilter.h

// SPDX-License-Identifier: MIT
#pragma once

#include "elos/common/process.h"
#include "elos/processfilter/processfilter_types.h"



[docs]/******************************************************************* * Function: elosProcessFilterInit *------------------------------------------------------------------ * Description: Initializes an existing elosRpnFilter * * Input: Pointer to the memory area that will be * initialized with default values after compiling * * Info: Needs to be freed with elosProcessFilterDeleteMembers() * * Return: - FILTER_RESULT_OK on success, * - FILTER_RESULT_ERROR on failure. ******************************************************************/ elosRpnFilterResultE_t elosProcessFilterInit(elosProcessFilter_t *filter);
[docs]/******************************************************************* * Function: elosProcessFilterNew *------------------------------------------------------------------ * Description: Allocates an elosRpnFilter * * Input: Pointer to a pointer that will contain the newly * allocated elosRpnFilter after calling the function. * * Info: The resulting elosRpnFilter is uninitialized * Needs to be freed with elosRpnFilterDelete() * Return: - FILTER_RESULT_OK on success, * - FILTER_RESULT_ERROR on failure. ******************************************************************/ elosRpnFilterResultE_t elosProcessFilterNew(elosProcessFilter_t **filter);
[docs]/******************************************************************* * Function: elosProcessFilterDeepCopy *------------------------------------------------------------------ * Description: Makes a deep copy of elosRpnFilter. The copy is * completely independent of the original * and needs to be freed separately. * * Input: Two elosRpnFilter pointers (from and to) * Info: 'to' needs to be freed with elosProcessFilterDeleteMembers() * * Return: - FILTER_RESULT_OK on success, * - FILTER_RESULT_ERROR on failure. ******************************************************************/ elosRpnFilterResultE_t elosProcessFilterDeepCopy(elosProcessFilter_t *to, const elosRpnFilter_t *from);
[docs]/******************************************************************* * Function: elosProcessFilterClone *------------------------------------------------------------------ * Description: Duplicates elosRpnFilter into a newly allocated * memory region. The copy is completely independent * of the original and needs to be freed separately. * * Input: Two elosRpnFilter pointers (from and to) * Info: 'to' needs to be freed with elosProcessFilterDelete() * * Return: - FILTER_RESULT_OK on success, * - FILTER_RESULT_ERROR on failure. ******************************************************************/ elosRpnFilterResultE_t elosProcessFilterClone(elosProcessFilter_t **filter, const elosRpnFilter_t *from);
[docs]/******************************************************************* * Function: elosProcessFilterDeleteMembers *------------------------------------------------------------------ * Description: Frees memory used by elosRpnFilter members * Input: Pointer to the elosRpnFilter to free * * Return: - FILTER_RESULT_OK on success, * - FILTER_RESULT_ERROR on failure. ******************************************************************/ elosRpnFilterResultE_t elosProcessFilterDeleteMembers(elosProcessFilter_t *filter);
[docs]/******************************************************************* * Function: elosProcessFilterDeleteMembers *------------------------------------------------------------------ * Description: Frees memory used by elosRpnFilter members * * Input: Pointer to the memory area that will be * initialized with default values after compiling * * Info: Needs to be freed with elosProcessFilterDeleteMembers() * * Return: - FILTER_RESULT_OK on success, * - FILTER_RESULT_ERROR on failure. ******************************************************************/ elosRpnFilterResultE_t elosProcessFilterDelete(elosProcessFilter_t *filter);
[docs]/******************************************************************* * Function: elosProcessFilterCreate *------------------------------------------------------------------ * Description: Create new filter to be used with elosProcessFilterExecute * Input: Initialized elosRpnFilter and parameters * * Return: - FILTER_RESULT_OK on success, * - FILTER_RESULT_ERROR on failure. ******************************************************************/ elosRpnFilterResultE_t elosProcessFilterCreate(elosProcessFilter_t *filter, const elosProcessFilterParam_t *param);
[docs]/******************************************************************* * Function: elosProcessFilterExecute *------------------------------------------------------------------ * Description: Runs an elosRpnFilter on the given data * Input: elosRpnFilter and parameters * * Return: - FILTER_RESULT_MATCH on success with a match, * - FILTER_RESULT_NO_MATCH on success with no match, * - FILTER_RESULT_ERROR on failure. ******************************************************************/ elosRpnFilterResultE_t elosProcessFilterExecute(elosProcessFilter_t const *filter, elosProcessFilterStack_t const *param, elosProcessIdentity_t *input);