/* dataCollectorLib.h - data collector library header file */ /* * Copyright (c) 2008, 2010 Wind River Systems, Inc. * * The right to copy, distribute, modify or otherwise make use * of this software may be licensed only pursuant to the terms * of an applicable Wind River license agreement. */ /* modification history -------------------- 01j,29apr10,pad Moved extern C statement after include statements. 01j,10feb10,tcr update for 64bit 01i,25sep08,tcr add support for ANY_EVENT triggers 01h,19aug08,tcr add function list 01g,14aug08,tcr remove surplus fields 01f,16jul08,tcr rename node 01e,09jun08,tcr remove DL_NODE 01d,13may08,tcr add typedef for data collector function 01c,01may08,tcr provide means of getting all collectors 01b,01may08,aim added dataCollectorStateSet() 01a,18apr08,tcr created */ #ifndef __dataCollectorLibh #define __dataCollectorLibh #include #include /* event_t */ #ifdef __cplusplus extern "C" { #endif /* typedefs */ typedef struct data_collector * DATA_COLLECTOR_ID; typedef void (DATA_COLLECTOR_FUNC_T)(DATA_COLLECTOR_ID dataCollector, const void * args, size_t size); typedef int (DATA_COLLECTOR_FILTER_FUNC_T)(DATA_COLLECTOR_ID dataCollector, const void * args, size_t size); typedef struct data_collector { struct list_node * pListNode; event_t evtId; DATA_COLLECTOR_FUNC_T * pDataCollector; size_t size; void * pWorkArea; DATA_COLLECTOR_FILTER_FUNC_T * pFilter; int enabled; const char * pClientName; } DATA_COLLECTOR_T; typedef struct { DATA_COLLECTOR_ID (*_func_dcCreate) (event_t evtId, DATA_COLLECTOR_FUNC_T * pDataCollector, size_t size, void * pWorkArea, DATA_COLLECTOR_FILTER_FUNC_T *pFilter, int enabled, const char *client); STATUS (* _func_dcDelete) (DATA_COLLECTOR_ID pCollector); STATUS (* _func_dcRegister) (DATA_COLLECTOR_ID dataCollector); STATUS (* _func_dcUnregister)(DATA_COLLECTOR_ID pCollector); STATUS (* _func_dcStateSet) (DATA_COLLECTOR_ID pDataCollector, int enable); } DATA_COLLECTOR_FUNC_LIST_T; /* function declarations */ extern STATUS dataCollectorLibInit (void); extern DATA_COLLECTOR_ID dataCollectorFirstGet (event_t evtId); extern DATA_COLLECTOR_ID dataCollectorNextGet (DATA_COLLECTOR_ID collector); extern DATA_COLLECTOR_ID dataCollectorCreate (event_t evtId, DATA_COLLECTOR_FUNC_T * pDataCollector, size_t size, void * pWorkArea, DATA_COLLECTOR_FILTER_FUNC_T *pFilter, int enabled, const char *client); extern STATUS dataCollectorRegister (DATA_COLLECTOR_ID dataCollector); extern STATUS dataCollectorUnregister (DATA_COLLECTOR_ID pCollector); extern STATUS dataCollectorDelete (DATA_COLLECTOR_ID pCollector); extern DATA_COLLECTOR_ID dataCollectorEach (BOOL (*callee)(DATA_COLLECTOR_ID id, int arg), int arg); extern STATUS dataCollectorStateSet (DATA_COLLECTOR_ID pDataCollector, int enable); /* allows quick check for presence of ANY_EVENT handlers */ extern int dataCollectorTrigAnyCnt; #ifdef __cplusplus } #endif #endif /* __dataCollectorLibh */