GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> XFC / dev > gxfc / rhel4-32


Interface   Data Structures   File List   Data Fields   Globals  

xfc.h File Reference

Filter interface definitions. More...

#include <EDS/TMR.h>
#include <EDS/EDS_fwServices.h>
#include <EDS/LCBV.h>
#include <EDS/io/EBF_stream.h>
#include <EDS/io/LCBP.h>

Classes

struct  _XfcFilterHandle

Typedefs

typedef void *(* XfcCfgGetRtn )(void *ftx)
typedef int(* XfcResultsPrintRtn )(unsigned int options, const void *beg, const void *end)
typedef void(* XfcStatsAccumulateRtn )(void *stats, const void *beg, const void *end)
typedef void(* XfcStatsPrintRtn )(void *cfg, void *stats, unsigned int vetoes)
typedef void(* XfcStatsClearRtn )(void *stats)
typedef struct _XfcFilterHandle XfcFilterHandle

Functions

int xfc_initialize (void)
 One time initialization routine.
int xfc_process (int id, const XfcRto *rto, const EDS_DB_HandlerConstructServices *services)
 Common routine to do the processing.
int xfc_sizeof (XfcConstructCtx *ctx, const EFC_definition *def, const EFC_DB_Schema *schema, int stats_size)
 Computes the size needed to hold configuration defined by the specified context, definition block and schema.
const EDS_fwHandlerServicesX1 * xfc_construct (XfcConstructCtx *ctx, EFC *efc, unsigned int handler_id, const EFC_DB_Schema *schema, unsigned int schema_key, EDS_fw *edsFw, unsigned int objects, unsigned int needs, XfcResultsPrintRtn resultsPrint, XfcStatsClearRtn statsClear, XfcStatsAccumulateRtn statsAcc, XfcStatsPrintRtn statsPrint, void *statsPrintCtx)
 Constructs the configuration for the specified set of parameters.
void xfc_display (XfcCtx *ctx, unsigned int pktBytes, EBF_pkt *pkt, EBF_siv siv, EDS_fwIxb *ixb)
 Displays the requested subsystems.
int xfc_any_display (const XfcCtx *ctx)
 Returns non-zero if there are any subsystems to display that need a directory.
void xfc_begtick_set (XfcCtx *ctx, TMR_tick tick)
 Seeds the beginning tick of this sample.
void xfc_endtick_set (XfcCtx *ctx, TMR_tick tick)
 Seeds the ending tick of this sample.
void * xfc_filterCtx_get (const XfcCtx *ctx)
 Returns a pointer to the underlying user filter control structure.
void * xfc_resultsCtx_get (const XfcCtx *ctx)
 Returns a pointer to the results control structure.
void * xfc_statsCtx_get (const XfcCtx *ctx)
 Returns a pointer to the statistics control structure.
void xfc_results_post (XfcCtx *ctx, int reason, const void *beg, const void *end, const EFA_span *span)
 Dummy result vector post routine.
int xfc_results_start (XfcCtx *ctx, int reason, int run_id, int startTime, int mode)
 Handles the start run for the result analysis.
void xfc_results_print (XfcCtx *ctx, const void *beg, const void *end)
 Prints the standard part of the results, then calls the filter specific piece.
unsigned int xfc_objects_get (const XfcCtx *ctx)
 Used to supply any additional EDS_fw objects needed by this filter context.
unsigned int xfc_needs_get (const XfcCtx *ctx)
 Used to supply any additional EDS_fw needs for this filter context.


Detailed Description

Filter interface definitions.

Author:
JJRussell - russell@slac.stanford.edu

   CVS $Id: xfc.h,v 1.2 2011/03/28 20:51:00 russell Exp $

Function Documentation

int xfc_any_display ( const XfcCtx ctx  ) 

Returns non-zero if there are any subsystems to display that need a directory.

Parameters:
ctx The filter context parameter

References _XfcCtx::displayer, and _XfcDisplayerCtx::printCtl.

void xfc_begtick_set ( XfcCtx ctx,
TMR_tick  tick 
)

Seeds the beginning tick of this sample.

Parameters:
ctx The xfc context
tick The beginning tick value

References _XfcCtx::tickBeg.

Referenced by xfc_results_post().

const EDS_fwHandlerServices xfc_construct ( XfcConstructCtx ctxx,
EFC *  efc,
unsigned int  handler_id,
const EFC_DB_Schema *  schema,
unsigned int  schema_key,
EDS_fw *  edsFw,
unsigned int  objects,
unsigned int  needs,
XfcResultsPrintRtn  resultsPrint,
XfcStatsClearRtn  statsClear,
XfcStatsAccumulateRtn  statsAcc,
XfcStatsPrintRtn  statsPrint,
void *  statsPrintCtx 
)

Constructs the configuration for the specified set of parameters.

Parameters:
ctxx Holds the run-time modifying context
efc The controlling Event Filter's handle
handler_id The handler's identifier
schema The defining schema. This must be what was passed to xfc_sizeof ().
schema_key The (likely FMX) key of the schema
edsFw The controlling EDS framework's handle
objects The EDS framework objects needed by this filter
needs The EDS framework service needs of this filter
resultsPrint The filter specific result print routine
statsClear The filter specific statistics buffer clear routine
statsAcc The filter specific statistics accumulation routine
statsPrint The fitler specific statistics print routine
statsPrintCtx The filter specific statistics print routine context parameter

!!!results;

References _XfcStatsCtx::acc, _XfcStatsCtx::bufs, _XfcSdi::cbp, _XfcStatsCtx::clear, _XfcConstructCtx::ctx, _XfcHandlerCtx::def, _XfcCtx::displayer, _XfcHandlerCtx::efa_post_cnt, _XfcHandlerCtx::efa_size, _XfcHandlerCtx::efc_size, _XfcCtx::efcCtx, _XfcResultsCtx::efs, _XfcHandlerCtx::efs_size, _XfcSdi::file, _XfcEfcCtx::filterCtx, _XfcCtx::handler, _XfcCtx::nevts, _XfcCtx::poster, _XfcResultsCtx::print, _XfcStatsCtx::print, _XfcDisplayerCtx::print_size, _XfcDisplayerCtx::printCtl, _XfcStatsCtx::printCtx, _XfcHandlerCtx::results, _XfcEfcCtx::resultsCtx, _XfcPosterCtx::sdi, _XfcResultsCtx::size, _XfcStatsCtx::size, _XfcDisplayerCtx::ss_to_print, _XfcHandlerCtx::stats, _XfcEfcCtx::statsCtx, xfc_needs_get(), xfc_objects_get(), xfc_results_post(), and xfc_results_start().

void void xfc_display ( XfcCtx ctx,
unsigned int  pktBytes,
EBF_pkt *  pkt,
EBF_siv  siv,
EDS_fwIxb *  ixb 
)

Displays the requested subsystems.

Parameters:
ctx The filter context
pktBytes The number of bytes in the packet
pkt The event data packet
siv The packet state information vector
ixb The EDS information exchange block

References _XfcCtx::displayer, _XfcDisplayerCtx::printCtl, _XfcDisplayerCtx::ss_to_display, _XfcDisplayerCtx::ss_to_print, and _XfcDisplayerCtx::to_print.

void xfc_endtick_set ( XfcCtx ctx,
TMR_tick  tick 
)

Seeds the ending tick of this sample.

Parameters:
ctx The xfc context
tick The ending tick value

References _XfcCtx::tickEnd.

Referenced by xfc_results_post().

void * xfc_filterCtx_get ( const XfcCtx ctx  ) 

Returns a pointer to the underlying user filter control structure.

Returns:
A pointer to the underlying user filter control structure
Parameters:
ctx The filter control context

References _XfcCtx::efcCtx, and _XfcEfcCtx::filterCtx.

int xfc_initialize ( void   ) 

One time initialization routine.

Returns:
Status

unsigned int xfc_needs_get ( const XfcCtx ctx  ) 

Used to supply any additional EDS_fw needs for this filter context.

Returns:
Bit mask of the addition objects
Parameters:
ctx The filter context handle

References _XfcPosterCtx::ctx, _XfcCtx::displayer, _XfcCtx::poster, and _XfcDisplayerCtx::printCtl.

Referenced by xfc_construct().

unsigned int xfc_objects_get ( const XfcCtx ctx  ) 

Used to supply any additional EDS_fw objects needed by this filter context.

Returns:
Bit mask of the addition objects
Parameters:
ctx The filter context handle

References _XfcPosterCtx::ctx, _XfcCtx::displayer, _XfcCtx::poster, and _XfcDisplayerCtx::printCtl.

Referenced by xfc_construct().

int xfc_process ( int  id,
const XfcRto rto,
const EDS_DB_HandlerConstructServices *  services 
)

Common routine to do the processing.

Parameters:
id The EFC_DB_id of this filter
rto The runtime options structure
services An alternative set of construction services, may be NULL, in which case the services resolved by the database schema and instance buried in the rto will be used.
Returns:
Status

References _XfcHandlerCtx::construction_services, _XfcCtx::ebf, _XfcCtx::edsFw, _XfcHandlerCtx::efc, _XfcCtx::handler, _XfcHandlerCtx::handler_id, _XfcRto::mode, _XfcCtx::mode, _XfcCtx::poster, _XfcPosterCtx::sdi, xfc_display_build(), xfc_edsFw_build(), xfc_istream_build(), xfc_run_start(), xfc_run_stop(), and xfc_time_initialize().

void xfc_results_post ( XfcCtx ctx,
int  reason,
const void *  beg,
const void *  end,
const EFA_span *  span 
)

Dummy result vector post routine.

Parameters:
ctx The xfc context
reason The posting reason
beg The first result vector
end The last result vector (actually one past the last one)
span The span of the sample

References _XfcStatsCtx::acc, _XfcStatsCtx::bufs, _XfcResultsCtx::efs, _XfcCtx::handler, _XfcResultsCtx::options, _XfcStatsCtx::print, _XfcStatsCtx::printCtx, _XfcHandlerCtx::results, _XfcHandlerCtx::stats, _XfcResultsCtx::verbose, _XfcResultsCtx::vetoes, xfc_begtick_set(), xfc_endtick_set(), and xfc_results_print().

Referenced by xfc_construct().

void xfc_results_print ( XfcCtx ctx,
const void *  beg,
const void *  end 
)

Prints the standard part of the results, then calls the filter specific piece.

Parameters:
ctx The xfc context
beg Pointer to the first filter specific result vector
end Pointer to the last filter specific result vector

References _XfcCtx::handler, _XfcResultsCtx::options, _XfcResultsCtx::print, printElapsed(), _XfcHandlerCtx::results, _XfcCtx::tickBeg, and _XfcCtx::tickEnd.

Referenced by xfc_results_post().

int xfc_results_start ( XfcCtx ctx,
int  reason,
int  run_id,
int  startTime,
int  mode 
)

Handles the start run for the result analysis.

Return values:
==0,if successfully started
!=0,if not successfully started
Parameters:
ctx The callback context parameter
reason The LSF_REASON_OPEN to indicate why the stream is being started
run_id Suggested use is to identify the block of events between when EDS_fwHandlerStart is called and EDS_fwHandlerFlush is called with a stop reason
startTime The run start time rounded to the nearest second
mode This must be the running mode.

References _XfcResultsCtx::efs, _XfcCtx::handler, and _XfcHandlerCtx::results.

Referenced by xfc_construct().

void * xfc_resultsCtx_get ( const XfcCtx ctx  ) 

Returns a pointer to the results control structure.

Returns:
A pointer to the results control structure
Parameters:
ctx The filter control context

References _XfcCtx::efcCtx, and _XfcEfcCtx::resultsCtx.

int xfc_sizeof ( XfcConstructCtx ctxx,
const EFC_definition *  def,
const EFC_DB_Schema *  schema,
int  stats_size 
)

Computes the size needed to hold configuration defined by the specified context, definition block and schema.

Returns:
The size, in bytes,
Parameters:
ctxx The filter control construction context
def The EFC definition block
schema The defining schema
stats_size The size, in bytes, of one statistics buffer

References _XfcConstructCtx::ctx, _XfcHandlerCtx::def, _XfcCtx::displayer, _XfcHandlerCtx::efa_post_cnt, _XfcHandlerCtx::efa_size, _XfcHandlerCtx::efc_size, _XfcHandlerCtx::efs_size, _XfcSdi::file, _XfcCtx::handler, _XfcCtx::poster, _XfcDisplayerCtx::print_size, RND8, _XfcHandlerCtx::schema, _XfcPosterCtx::sdi, _XfcStatsCtx::size, _XfcDisplayerCtx::ss_to_print, and _XfcHandlerCtx::stats.

void * xfc_statsCtx_get ( const XfcCtx ctx  ) 

Returns a pointer to the statistics control structure.

Returns:
A pointer to the statistics control structure
Parameters:
ctx The filter control context

References _XfcCtx::efcCtx, and _XfcEfcCtx::statsCtx.


Generated on Mon Aug 8 10:34:02 2011 by  doxygen 1.5.8