]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/SampleLib/AliHLTSampleOfflineSinkComponent.h
fixing coverity (index out of bounds)
[u/mrichter/AliRoot.git] / HLT / SampleLib / AliHLTSampleOfflineSinkComponent.h
1 //-*- Mode: C++ -*-
2 // @(#) $Id$
3
4 #ifndef ALIHLTSAMPLEOFFLINESINKCOMPONENT_H
5 #define ALIHLTSAMPLEOFFLINESINKCOMPONENT_H
6 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7  * See cxx sink for full Copyright notice                               */
8
9 /** @file   AliHLTSampleOfflineSinkComponent.h
10     @author Matthias Richter
11     @date   
12     @brief  This is a sample offline interface component.
13 */
14
15 #include "AliHLTOfflineDataSink.h"
16
17 class AliLoader;
18
19 /**
20  * @class AliHLTSampleOfflineSinkComponent
21  * This is a sample offline interface component.
22  *
23  * @ingroup alihlt_system
24  */
25 class AliHLTSampleOfflineSinkComponent : public AliHLTOfflineDataSink {
26  public:
27   /**
28    * standard constructor. The agent is automatically registered in the
29    * global agent manager
30    */
31   AliHLTSampleOfflineSinkComponent();
32   /** destructor */
33   virtual ~AliHLTSampleOfflineSinkComponent();
34
35   /**
36    * Get the id of the component.
37    * Each component is identified by a unique id.
38    * The function is pure virtual and must be implemented by the child class.
39    * @return component id (string)
40    */
41   const char* GetComponentID();
42
43   /**
44    * Get the input data types of the component.
45    * The function is pure virtual and must be implemented by the child class.
46    * @return list of data types in the vector reference
47    */
48   virtual void GetInputDataTypes( vector<AliHLTComponentDataType>& );
49
50   /**
51    * Spawn function.
52    * Each component must implement a spawn function to create a new instance of 
53    * the class. Basically the function must return <i>new <b>my_class_name</b></i>.
54    * @return new class instance
55    */
56   virtual AliHLTComponent* Spawn();
57
58   /**
59    * Fill ESD for one event.
60    * Fill the ESD with the previously reconstructed data. Interface method called by
61    * the AliHLTOfflineInterface framework.
62    * @param eventNo       event No. \em Note: this is an internal enumeration of the
63    *                      processed events.
64    * @param runLoader     the AliRoot runloader
65    * @param esd           an AliESDEvent instance
66    * @return neg. error code if failed 
67    */
68   int FillESD(int eventNo, AliRunLoader* runLoader, AliESDEvent* esd);
69
70  protected:
71   /**
72    * Init method.
73    */
74   int DoInit( int argc, const char** argv );
75
76   /**
77    * Deinit method.
78    */
79   int DoDeinit();
80
81   /**
82    * Data sink method.
83    * @param evtData       event data structure
84    * @param trigData      trigger data structure
85    * @return
86    */
87   int DumpEvent(const AliHLTComponentEventData& evtData,
88                 AliHLTComponentTriggerData& trigData);
89
90   using AliHLTOfflineDataSink::DumpEvent;
91
92  private:
93   ClassDef(AliHLTSampleOfflineSinkComponent, 0);
94 };
95
96 #endif