]>
Commit | Line | Data |
---|---|---|
90ebac25 | 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 | |
af885e0f | 65 | * @param esd an AliESDEvent instance |
90ebac25 | 66 | * @return neg. error code if failed |
67 | */ | |
af885e0f | 68 | int FillESD(int eventNo, AliRunLoader* runLoader, AliESDEvent* esd); |
90ebac25 | 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 | ||
d76bc02a | 90 | using AliHLTOfflineDataSink::DumpEvent; |
91 | ||
90ebac25 | 92 | private: |
93 | ClassDef(AliHLTSampleOfflineSinkComponent, 0); | |
94 | }; | |
95 | ||
96 | #endif |