Line data Source code
1 : // -*- Mode: C++ -*-
2 :
3 : #ifndef ALIHLTTPCOFFLINEPREPROCESSORWRAPPERCOMPONENT_H
4 : #define ALIHLTTPCOFFLINEPREPROCESSORWRAPPERCOMPONENT_H
5 :
6 : //* This file is property of and copyright by the ALICE HLT Project *
7 : //* ALICE Experiment at CERN, All rights reserved. *
8 : //* See cxx source for full Copyright notice *
9 :
10 : /** @file AliHLTTPCOfflinePreprocessorWrapperComponent.h
11 : @author Sergey Gorbunov
12 : @date
13 : @brief
14 : */
15 :
16 : // see below for class documentation
17 : // or
18 : // refer to README to build package
19 : // or
20 : // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
21 :
22 : #include "AliHLTProcessor.h"
23 : #include "AliHLTAsyncMemberProcessor.h"
24 :
25 : class AliAnalysisDataContainer;
26 : class AliCDBEntry;
27 :
28 : /**
29 : * @class AliHLTTPCOfflinePreprocessorWrapperComponent
30 : * @ingroup alihlt_tpc_components
31 : */
32 :
33 : class AliHLTTPCOfflinePreprocessorWrapperComponent : public AliHLTProcessor {
34 :
35 : public:
36 :
37 : /** standard constructor */
38 : AliHLTTPCOfflinePreprocessorWrapperComponent();
39 : /** destructor */
40 : virtual ~AliHLTTPCOfflinePreprocessorWrapperComponent();
41 :
42 : // Public functions to implement AliHLTComponent's interface.
43 : // These functions are required for the registration process
44 :
45 : /** interface function, see AliHLTComponent for description */
46 : const char* GetComponentID();
47 : /** interface function, see AliHLTComponent for description */
48 : void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
49 : /** interface function, see AliHLTComponent for description */
50 : AliHLTComponentDataType GetOutputDataType();
51 : /** interface function, see AliHLTComponent for description */
52 : virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
53 : /** interface function, see AliHLTComponent for description */
54 : AliHLTComponent* Spawn();
55 : /** interface function, see @ref AliHLTComponent for description */
56 : void GetOCDBObjectDescription( TMap* const targetMap);
57 :
58 : protected:
59 :
60 : // Protected functions to implement AliHLTComponent's interface.
61 : // These functions provide initialization as well as the actual processing capabilities of the component.
62 :
63 : int DoInit( int argc, const char** argv );
64 : Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
65 : int DoDeinit();
66 :
67 : int Reconfigure(const char* cdbEntry, const char* chainId);
68 :
69 : int ScanConfigurationArgument(int argc, const char** argv);
70 :
71 : using AliHLTProcessor::DoEvent;
72 :
73 : private:
74 :
75 :
76 : /** copy constructor prohibited */
77 : AliHLTTPCOfflinePreprocessorWrapperComponent(const AliHLTTPCOfflinePreprocessorWrapperComponent&);
78 :
79 : /** assignment operator prohibited */
80 : AliHLTTPCOfflinePreprocessorWrapperComponent& operator=(const AliHLTTPCOfflinePreprocessorWrapperComponent&);
81 :
82 : AliAnalysisDataContainer* GetDataContainer(TObject* obj);
83 :
84 : AliCDBEntry* RunPreprocessor(AliAnalysisDataContainer* dataContainer);
85 : void* AsyncRunPreprocessor(void*);
86 :
87 : AliHLTAsyncMemberProcessor<AliHLTTPCOfflinePreprocessorWrapperComponent> fAsyncProcessor;
88 : int fAsyncProcessorQueueDepth;
89 : int fAsyncProcess;
90 :
91 6 : ClassDef(AliHLTTPCOfflinePreprocessorWrapperComponent, 0)
92 : };
93 :
94 : #endif
|