GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> EFC / dev > efcprint / rhel6-64


Interface   Data Structures   File List   Data Fields   Globals  

EFC.h File Reference

Provides a wrapper in which to run a filter as an EDS callback routine. More...

#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)
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)
unsigned int EFC_objectsAdd (EDS_fw *fw, unsigned int objects)
unsigned int EFC_objectsGet (const EFC *efc)
unsigned int EFC_needsGet (const EFC *efc)
void * EFC_get (const EFC *efc, EFC_OBJECT_K object)
int EFC_set (EFC *efc, EFC_OBJECT_K object, void *value)
int EFC_filter (EFC *efc, unsigned int pktBytes, EBF_pkt *pkt, EBF_siv siv, EDS_fwIxb *ixb, int id)
const EFC_DB_Schema * EFC_lookup (unsigned short int schema_id, unsigned short int instance_id)
int EFC_modeAssociate (EFC *efc, int mode, int configuration)
int EFC_modeSelect (EFC *efc, int mode, EDS_cfgInfo *info)
int EFC_start (EFC *efc, unsigned int reason, unsigned int run_id, unsigned int start_time, unsigned int mode)
void EFC_report (EFC *efc, unsigned int list)
int EFC_teardown (EFC *efc)


Detailed Description

Provides a wrapper in which to run a filter as an EDS callback routine.

Author:
JJRussell - russell@slac.stanford.edu

   CVS $Id: EFC.h,v 1.9 2012/01/04 20:28:08 russell Exp $


Typedef Documentation

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.

Returns:
Status
Parameters:
ctl The target filter's control block
parameters The defining parameters

void *(* EFC_servicesConstruct)(void *ctl, const void *schema)

Constructs the configuration parameters block.

Returns:
Status
Parameters:
ctl The target filter's control block
schema The defining configuration schema

void(* EFC_servicesDestruct)(void *ctl)

Destroys this filter's context.

Parameters:
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.

Returns:
The filtering fate
Parameters:
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.

Returns:
The bit list of the remaining ones to print, 0 terminates it
Parameters:
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


Enumeration Type Documentation

Enumeration of the objects.

Enumerator:
EFC_OBJECT_K_MODE  The configuration mode
EFC_OBJECT_K_FILTER_RTN  The filter routine
EFC_OBJECT_K_FILTER_PRM  The filter parameter
EFC_OBJECT_K_CFGSET_RTN  The configuration set routine
EFC_OBJECT_K_REPORT_RTN  The report routine
EFC_OBJECT_K_SAMPLER  The sampling parameters
EFC_OBJECT_K_EFA  The event analysis structure
EFC_OBJECT_K_ID  The id of this event filter/handler


Generated on Wed Jan 16 13:33:32 2013 by  doxygen 1.5.8