]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/BASE/AliHLTDataSource.cxx
high-level component interface added
[u/mrichter/AliRoot.git] / HLT / BASE / AliHLTDataSource.cxx
1 // $Id$
2
3 /**************************************************************************
4  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  *                                                                        *
6  * Authors: Matthias Richter <Matthias.Richter@ift.uib.no>                *
7  *          for The ALICE Off-line Project.                               *
8  *                                                                        *
9  * Permission to use, copy, modify and distribute this software and its   *
10  * documentation strictly for non-commercial purposes is hereby granted   *
11  * without fee, provided that the above copyright notice appears in all   *
12  * copies and that both the copyright notice and this permission notice   *
13  * appear in the supporting documentation. The authors make no claims     *
14  * about the suitability of this software for any purpose. It is          *
15  * provided "as is" without express or implied warranty.                  *
16  **************************************************************************/
17
18 /** @file   AliHLTDataSource.cxx
19     @author Matthias Richter
20     @date   
21     @brief  Base class implementation for HLT data source components. */
22
23 #if __GNUC__>= 3
24 using namespace std;
25 #endif
26
27 #include "AliHLTDataSource.h"
28
29 /** ROOT macro for the implementation of ROOT specific class methods */
30 ClassImp(AliHLTDataSource)
31
32 AliHLTDataSource::AliHLTDataSource()
33
34   // see header file for class documentation
35   // or
36   // refer to README to build package
37   // or
38   // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
39 }
40
41 AliHLTDataSource::~AliHLTDataSource()
42
43   // see header file for class documentation
44 }
45
46 void AliHLTDataSource::GetInputDataTypes( vector<AliHLTComponentDataType>& list)
47 {
48   // see header file for class documentation
49   list.clear(); // there are no input data types
50 }
51
52
53 int AliHLTDataSource::DoProcessing( const AliHLTComponentEventData& evtData,
54                                     const AliHLTComponentBlockData* blocks, 
55                                     AliHLTComponentTriggerData& trigData,
56                                     AliHLTUInt8_t* outputPtr, 
57                                     AliHLTUInt32_t& size,
58                                     vector<AliHLTComponentBlockData>& outputBlocks,
59                                     AliHLTComponentEventDoneData*& edd )
60 {
61   // see header file for class documentation
62   int iResult=0;
63   if (blocks) {
64     // this is currently just to get rid of the warning "unused parameter"
65   }
66   if (evtData.fBlockCnt > 0) {
67     HLTWarning("Data source component skips input data blocks");
68   }
69   iResult=GetEvent(evtData, trigData, outputPtr, size, outputBlocks);
70   HLTDebug("component %s (%p) GetEvent finished (%d)", GetComponentID(), this, iResult);
71   edd = NULL;
72   return iResult;
73 }
74
75 int AliHLTDataSource::GetEvent( const AliHLTComponentEventData& evtData,
76                                    AliHLTComponentTriggerData& trigData,
77                                    AliHLTUInt8_t* outputPtr, 
78                                    AliHLTUInt32_t& size,
79                                    vector<AliHLTComponentBlockData>& outputBlocks )
80 {
81   // we just forward to the high level method, all other parameters already
82   // have been stored internally
83   return GetEvent(evtData, trigData);
84 }
85
86 int AliHLTDataSource::GetEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData)
87 {
88   HLTFatal("no processing method implemented");
89   return -ENOSYS;
90 }