GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> EFC / V4-5-5 > gdefc / rhel6-32
#include <EFC/EFC_fate.h>
#include <EFC/EFA_def.h>
#include <EDS/EDS_fw.h>
#include <EDS/EBF_siv.h>
#include <EDS_DB/EDS_DB_schema.h>
Classes | |
struct | _EFC_services |
The defining services of a standard filter. More... | |
struct | _EFC_sizes |
The defining sizes the filters control block, configuration block and result vector. More... | |
struct | _EFC_classes |
Breaks the status word into classes of bits. More... | |
struct | _EFC_definition |
The defining values of a standard filter. More... | |
Typedefs | |
typedef void *(* | EFC_servicesConstruct )(void *ctl, const void *schema) |
Constructs the configuration parameters block. | |
typedef EFC_fate(* | EFC_servicesFilter )(void *ctl, int pktBytes, EBF_pkt *pkt, EBF_siv siv, EDS_fwIxb *ixb, unsigned int vetoes, void *result) |
EFC filter routine function signature. | |
typedef void *(* | EFC_servicesCfgSet )(void *cfg_ctl, const void *parameters) |
Constructs the configuration parameters block. | |
typedef void(* | EFC_servicesDestruct )(void *ctl) |
Destroys this filter's context. | |
typedef unsigned int(* | EFC_servicesReport )(void *prm, const void *cfg, const EFC_sampler *sampler, int which) |
Configuration reporting callback routine. | |
typedef struct _EFC_services | EFC_services |
Typedef for struct _EFC_services. | |
typedef struct _EFC_sizes | EFC_sizes |
Typedef for struct _EFC_sizes. | |
typedef struct _EFC_classes | EFC_classes |
Typedef for struct _EFC_classes. | |
typedef struct _EFC_definition | EFC_definition |
Typedef for struct _EFC_defintion. | |
typedef enum _EFC_OBJECT_K | EFC_OBJECT_K |
Typedef for enum _EFC_OBJECT_K. | |
Enumerations | |
enum | _EFC_OBJECT_K { EFC_OBJECT_K_MODE = 0, EFC_OBJECT_K_FILTER_RTN = 1, EFC_OBJECT_K_FILTER_PRM = 2, EFC_OBJECT_K_CFGSET_RTN = 3, EFC_OBJECT_K_REPORT_RTN = 4, EFC_OBJECT_K_SAMPLER = 5, EFC_OBJECT_K_EFA = 6, EFC_OBJECT_K_ID = 7 } |
Enumeration of the objects. More... | |
Functions | |
int | EFC_sizeof (const EFC_DB_SchemaFilter *schema, void *prm, const EFC_sizes *sizes) |
Returns the size, in bytes, of the filter control structure and the associated configuration constants. | |
const EDS_fwHandlerServicesX1 * | EFC_construct (EFC *efc, unsigned int handler_id, const EFC_DB_SchemaFilter *schema, unsigned int schema_key, void *prm, EDS_fw *edsFw, const EFC_definition *definition, unsigned int objects, unsigned int needs) |
Resolves all the indirect references in the specified master configuration file and files in both the EFC control structure and the filter specific control structure. This is merely a call-through to the general purpose constructor. | |
unsigned int | EFC_objectsAdd (EDS_fw *fw, unsigned int objects) |
unsigned int | EFC_objectsGet (const EFC *efc) |
Returns the list of EDS framework objects needed by this filter. | |
unsigned int | EFC_needsGet (const EFC *efc) |
Returns the list of EDS framework needs for this filter. | |
void * | EFC_get (const EFC *efc, EFC_OBJECT_K object) |
Returns a pointer to named object. | |
int | EFC_set (EFC *efc, EFC_OBJECT_K object, void *value) |
Sets the named object to the specified value. This is primarily used for backdoor debugging. | |
int | EFC_filter (EFC *efc, unsigned int pktBytes, EBF_pkt *pkt, EBF_siv siv, EDS_fwIxb *ixb, int id) |
Calls the filter function for each of the specified events. | |
const EFC_DB_Schema * | EFC_lookup (unsigned short int schema_id, unsigned short int instance_id) |
Looks up the CDM database associated with the specified schema_id and instance_id. | |
int | EFC_modeAssociate (EFC *efc, int mode, int configuration) |
Establish a new configuration to be associated with the indicated mode. | |
int | EFC_modeSelect (EFC *efc, int mode, EDS_cfgInfo *info) |
Selects the operating environment according to the specified mode. | |
int | EFC_start (EFC *efc, unsigned int reason, unsigned int run_id, unsigned int start_time, unsigned int mode) |
EDS start run callback routine. | |
void | EFC_report (EFC *efc, unsigned int list) |
Calls back the user to report on the configuration. | |
int | EFC_teardown (EFC *efc) |
CVS $Id: EFC.h,v 1.9 2012/01/04 20:28:08 russell Exp $
Typedef for struct _EFC_defintion.
The original definition of an EFC_definition did not contain that information. In order to stay backwards compatible, an augmented version, EFC_definitionC, along with a matching constructor, EFC_constructC was added. With EFC_2.0.0, the qualifying C was dropped and all references to the original version were eliminated.
Typedef for enum _EFC_OBJECT_K.
This enumerates the objects that can be accessed and set via the EFC_objectGet and EFC_objectSet routines.
These routines allow access to the private EFC structure and is meant to be used mainly in a debugging environment. However, there may be uses for this outside of that arena, so it was decided to exposed this as a general interface. With that said, one should realize that this facility should be used with caution.
The one very legitimate use is to get a pointer to the filter specific parameter. This would be called immediately after EFC_construct completes. Fetching this value will all the user to complete initialization of the structure. This was omitted from the first implementation by oversight and by the fact that the early filters did not need it.
void *(* EFC_servicesCfgSet)(void *ctl, void *parameters) |
Constructs the configuration parameters block.
ctl | The target filter's control block | |
parameters | The defining parameters |
void *(* EFC_servicesConstruct)(void *ctl, const void *schema) |
Constructs the configuration parameters block.
ctl | The target filter's control block | |
schema | The defining configuration schema |
void(* EFC_servicesDestruct)(void *ctl) |
Destroys this filter's context.
ctl | The target filter's control block |
EFC_fate(* EFC_servicesFilter)(void *ctl, int pktBytes, EBF_pkt *pkt, EBF_siv siv, EDS_fwIxb *ixb, unsigned int vetoes, void *result) |
EFC filter routine function signature.
ctl | The target filter's control block | |
pktBytes | Number of bytes in the EBF packet | |
pkt | The EBF packet | |
siv | The EBF state information vector | |
EDS_fwIxb | The framework's information exchange block | |
vetoes | The list of active vetoes | |
result | The result vector to fill |
unsigned int(* EFC_servicesReport)(void *prm, const void *cfg, const EFC_sampler *sampler, int list) |
Configuration reporting callback routine.
prm | User context parameter | |
cfg | The configuration to report on | |
sampler | The sampler structure that is paired with this configuration | |
list | The bit list of what is remaining, by implication, this is 0 when done |
enum _EFC_OBJECT_K |
Enumeration of the objects.
const EDS_fwHandlerServicesX1 EFC_construct | ( | EFC * | efc, | |
unsigned int | id, | |||
const EFC_DB_SchemaFilter * | schema, | |||
unsigned int | schema_key, | |||
void * | prm, | |||
EDS_fw * | edsFw, | |||
const EFC_definition * | definition, | |||
unsigned int | objects, | |||
unsigned int | needs | |||
) |
Resolves all the indirect references in the specified master configuration file and files in both the EFC control structure and the filter specific control structure. This is merely a call-through to the general purpose constructor.
efc | The Event Filter Control block to initialize | |
id | A unique identifier to assign to this EFC handler | |
schema | Pointer to the schema of the filter configuration file | |
schema_key | The schema's file resolution key | |
prm | An optional, modifying parameter | |
edsFw | The controlling EDS framework handle | |
definition | The defining information for this filter | |
objects | The list of EDS framework objects used by this filter | |
needs | The list of EDS needs for this filter. |
References _EFC_definition::classes, construct_efc(), _EFC_definition::services, and _EFC_definition::sizes.
Referenced by EFC_stdConstruct().
int EFC_filter | ( | EFC * | efc, | |
unsigned int | pktBytes, | |||
EBF_pkt * | pkt, | |||
EBF_siv | siv, | |||
EDS_fwIxb * | ixb, | |||
int | id | |||
) |
Calls the filter function for each of the specified events.
efc | The event filter control structure | |
pktBytes | The number bytes in this packet | |
pkt | The event packet | |
siv | The state information vector | |
ixb | The Information Exchange Block | |
id | The identification of this handler |
References _EFC::active, _EFC_sampler::classes, copyResult(), _EFA::cur, _EFC::disabled_passes, _EFC::efa, EFA__preprocess(), EFA_postprocess(), EFA_STATE_K_STARTED, EFC__fateIsAccepted(), EFC__fateIsUndecided(), _EFC_samplerPrescaleCtx::enabled, _EFC_samplerClasses::enabled, _EFC::filterPrm, _EFC::filterRtn, getActive(), _EFC::ievt, if_would_have_been_vetoed(), _EFC_samplerPrescaleCtx::in, _EFC::needs_leaked, _EFC::needs_normal, _EFC_samplerPrescaleCtx::out, _EFA::postLeft, _EFC_sampler::prescale, _EFC_samplerPrescaleCtx::prescalers, _EFC::sampler, _EFA::size, _EFA::state, updateDisabledPasses(), updatePrescaler(), and _EFC_classes::vetoes.
Referenced by construct_efc().
void * EFC_get | ( | const EFC * | efc, | |
EFC_OBJECT_K | object | |||
) |
Returns a pointer to named object.
efc | The Event Filter handle | |
object | The object to get. This is one of the following set
|
References _EFC::cfgSetRtn, _EFC::efa, EFC_OBJECT_K_CFGSET_RTN, EFC_OBJECT_K_EFA, EFC_OBJECT_K_FILTER_PRM, EFC_OBJECT_K_FILTER_RTN, EFC_OBJECT_K_ID, EFC_OBJECT_K_MODE, EFC_OBJECT_K_REPORT_RTN, EFC_OBJECT_K_SAMPLER, _EFC::filterPrm, _EFC::filterRtn, _EFC::id, _EFC::mode, _EFC::reportRtn, and _EFC::sampler.
Referenced by EFC_stdConstruct().
const EFC_DB_Schema EFC_lookup | ( | unsigned short int | schema_id, | |
unsigned short int | instance_id | |||
) |
Looks up the CDM database associated with the specified schema_id and instance_id.
schema_id | The schema id of the filter's configuration database | |
instance_id | The instance id of the filter's configuratin database |
int EFC_modeAssociate | ( | EFC * | efc, | |
int | mode, | |||
int | configuration | |||
) |
Establish a new configuration to be associated with the indicated mode.
The | old association |
efc | The EFC control context | |
mode | The mode, must be 0-7 | |
configuration | One of the active configurations. This number is the index that the configurations where defined |
References _EFC_cfg::byMode, _EFC::cfg, _EFC_cfg::db, _EFC_cfgDb::members, and _EFC_cfgDb::valid.
Referenced by construct_efc().
int EFC_modeSelect | ( | EFC * | efc, | |
int | mode, | |||
EDS_cfgInfo * | info | |||
) |
Selects the operating environment according to the specified mode.
==0,success | ||
!=1,failure |
efc | The EFC control context | |
mode | The new mode, must be 0-7 | |
info | Returned with information about the newly selected configuration |
References _EFC_cfg::byMode, _EFC::cfg, _EFC::cfgSetRtn, _EFC_cfg::db, _EFC::efa, EFA_notify(), _EFC::filterPrm, _EFC::id, _EFC_cfgDbMember::idx, _EFC::key, _EFC_cfgDbMember::key, _EFC_cfgDb::members, _EFC::mode, _EFC_cfgDbMember::prms, _EFC_cfgDbMember::sampler, and _EFC::sampler.
Referenced by construct_efc().
unsigned int EFC_needsGet | ( | const EFC * | efc | ) |
Returns the list of EDS framework needs for this filter.
efc | The EFC control context |
References _EFC::needs.
Referenced by construct_efc().
unsigned int EFC_objectsGet | ( | const EFC * | efc | ) |
Returns the list of EDS framework objects needed by this filter.
efc | The EFC control context |
References _EFC::objects.
Referenced by construct_efc().
void EFC_report | ( | EFC * | efc, | |
unsigned int | list | |||
) |
Calls back the user to report on the configuration.
efc | The Event Filter Control Block | |
list | The bit list of which ones to report on. If 0, then report only on the current one |
References _EFC::cfg, _EFC_cfg::db, _EFC_cfgDb::members, _EFC::mode, _EFC_cfgDbMember::prms, _EFC::reportRtn, _EFC::sampler, _EFC_cfgDbMember::sampler, and _EFC_cfgDb::valid.
int EFC_set | ( | EFC * | efc, | |
EFC_OBJECT_K | object, | |||
void * | value | |||
) |
Sets the named object to the specified value. This is primarily used for backdoor debugging.
0,Named | object is settable | |
-1,Named | object is not setteable |
efc | The Event Filter handle | |
object | The object to set. The following objects are supported EFC_OBJECT_K_MODE EFC_OBJECT_K_FILTER_RTN EFC_OBJECT_K_FILTER_PRM EFC_OBJECT_K_CFGSET_RTN EFC_OBJECT_K_REPORT_RTN | |
value | The new value |
References _EFC::cfgSetRtn, EFC_OBJECT_K_CFGSET_RTN, EFC_OBJECT_K_FILTER_PRM, EFC_OBJECT_K_FILTER_RTN, EFC_OBJECT_K_MODE, EFC_OBJECT_K_REPORT_RTN, _EFC::filterPrm, _EFC::filterRtn, _EFC::mode, and _EFC::reportRtn.
int EFC_sizeof | ( | const EFC_DB_SchemaFilter * | schema, | |
void * | prm, | |||
const EFC_sizes * | sizes | |||
) |
Returns the size, in bytes, of the filter control structure and the associated configuration constants.
schema | Pointer to the schema of the filter configuration file | |
prm | An optional, modifying parameter | |
sizes | The sizes of the filter's various blocks |
References _EFC_sizes::cfg, and _EFC_sizes::ctl.
Referenced by EFC_stdConstruct(), and EFC_stdSizeof().
int EFC_start | ( | EFC * | efc, | |
unsigned int | reason, | |||
unsigned int | run_id, | |||
unsigned int | start_time, | |||
unsigned int | mode | |||
) |
EDS start run callback routine.
efc | The event filter control handle | |
reason | Suggested use is to indicate why the post stream is being started | |
run_id | Suggested use is to identify the block of events between when EDS_fwStart is called and EDS_fwFlush is called with a stop reason | |
start_time | The run start time rounded to the nearest second | |
mode | This must be the running mode. Note that a call to EDS_selectMode still must be done. |
References _EFC::efa, and EFA_start().
Referenced by construct_efc().