3 /**************************************************************************
4 * This file is property of and copyright by the ALICE HLT Project *
5 * ALICE Experiment at CERN, All rights reserved. *
7 * Primary Authors: Matthias Richter <Matthias.Richter@ift.uib.no> *
8 * for The ALICE HLT Project. *
10 * Permission to use, copy, modify and distribute this software and its *
11 * documentation strictly for non-commercial purposes is hereby granted *
12 * without fee, provided that the above copyright notice appears in all *
13 * copies and that both the copyright notice and this permission notice *
14 * appear in the supporting documentation. The authors make no claims *
15 * about the suitability of this software for any purpose. It is *
16 * provided "as is" without express or implied warranty. *
17 **************************************************************************/
19 /** @file AliHLTModuleAgent.cxx
20 @author Matthias Richter
22 @brief Agent helper class for component libraries.
23 @note The class is used in Offline (AliRoot) context
26 #include "AliHLTModuleAgent.h"
28 /** ROOT macro for the implementation of ROOT specific class methods */
29 ClassImp(AliHLTModuleAgent)
31 AliHLTModuleAgent::AliHLTModuleAgent()
35 // see header file for class documentation
37 // refer to README to build package
39 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
43 AliHLTModuleAgent::AliHLTModuleAgent(const AliHLTModuleAgent&)
49 // see header file for function documentation
52 AliHLTModuleAgent& AliHLTModuleAgent::operator=(const AliHLTModuleAgent&)
54 // see header file for function documentation
58 AliHLTModuleAgent::~AliHLTModuleAgent()
60 // see header file for function documentation
64 void AliHLTModuleAgent::PrintStatus(const char* agent)
66 // see header file for function documentation
69 AliHLTModuleAgent* pCurrent=fAnchor;
70 while (pCurrent!=NULL && strcmp(pCurrent->GetName(), agent)!=0) pCurrent=pCurrent->fpNext;
72 log.Logging(kHLTLogInfo, "AliHLTModuleAgent::PrintStatus", "module agents",
73 "agent %s available", pCurrent->GetName());
75 log.Logging(kHLTLogInfo, "AliHLTModuleAgent::PrintStatus", "module agents",
76 "agent %s not found", agent);
79 AliHLTModuleAgent* pCurrent=fAnchor;
80 log.Logging(kHLTLogInfo, "AliHLT", "", "-----------------------");
81 log.Logging(kHLTLogInfo, "AliHLT", "", "available module agents");
83 log.Logging(kHLTLogInfo, "AliHLT", "", " none");
86 msg.Form(" %s : %p", pCurrent->GetName(), pCurrent);
87 log.Logging(kHLTLogInfo, "AliHLT", "", msg.Data());
88 pCurrent=pCurrent->fpNext;
90 log.Logging(kHLTLogInfo, "AliHLT", "", "-----------------------");
94 int AliHLTModuleAgent::CreateConfigurations(AliHLTConfigurationHandler* handler,
95 AliRunLoader* runloader) const
97 // default method, nothing to be done, child classes can overload
98 if (handler==NULL && runloader==NULL) {
99 // get rid of 'unused parameter' warning
104 const char* AliHLTModuleAgent::GetLocalRecConfigurations(AliRunLoader* runloader) const
106 // default method, nothing to be done, child classes can overload
107 if (runloader==NULL) {
108 // get rid of 'unused parameter' warning
113 const char* AliHLTModuleAgent::GetEventRecConfigurations(AliRunLoader* runloader) const
115 // default method, nothing to be done, child classes can overload
116 if (runloader==NULL) {
117 // get rid of 'unused parameter' warning
122 const char* AliHLTModuleAgent::GetRequiredComponentLibraries() const
124 // default method, nothing to be done, child classes can overload
128 int AliHLTModuleAgent::RegisterComponents(AliRunLoader* runloader) const
130 if (runloader==NULL) {
131 // get rid of 'unused parameter' warning
133 // default method, nothing to be done, child classes can overload
137 AliHLTModuleAgent* AliHLTModuleAgent::fAnchor=NULL;
138 AliHLTModuleAgent* AliHLTModuleAgent::fCurrent=NULL;
139 int AliHLTModuleAgent::fCount=0;
141 AliHLTModuleAgent* AliHLTModuleAgent::GetFirstAgent()
143 // see header file for function documentation
148 AliHLTModuleAgent* AliHLTModuleAgent::GetNextAgent()
150 // see header file for function documentation
151 if (fCurrent!=NULL) fCurrent=fCurrent->fpNext;
155 int AliHLTModuleAgent::Register(AliHLTModuleAgent* pAgent)
157 // see header file for function documentation
159 if (!pAgent) return -EINVAL;
163 pAgent->fpNext=fAnchor;
166 // log.Logging(kHLTLogDebug, "AliHLTModuleAgent::Register", "", "module agent %p registered", pAgent);
171 int AliHLTModuleAgent::Unregister(AliHLTModuleAgent* pAgent)
173 // see header file for function documentation
175 if (!pAgent) return -EINVAL;
177 AliHLTModuleAgent* prev=NULL;
178 AliHLTModuleAgent* handler=fAnchor;
179 while (handler!=NULL && handler!=pAgent) {
181 handler=handler->fpNext;
185 fAnchor=handler->fpNext;
187 prev->fpNext=handler->fpNext;
189 //log.Logging(kHLTLogDebug, "AliHLTModuleAgent::Unregister", "", "module agent %p removed", pAgent);