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
101 const char* AliHLTModuleAgent::GetLocalRecConfigurations(AliRunLoader* /*runloader*/) const
103 // default method, nothing to be done, child classes can overload
107 const char* AliHLTModuleAgent::GetEventRecConfigurations(AliRunLoader* /*runloader*/) const
109 // default method, nothing to be done, child classes can overload
113 const char* AliHLTModuleAgent::GetRequiredComponentLibraries() const
115 // default method, nothing to be done, child classes can overload
119 int AliHLTModuleAgent::RegisterComponents(AliRunLoader* /*runloader*/) const
121 // default method, nothing to be done, child classes can overload
125 AliHLTModuleAgent* AliHLTModuleAgent::fAnchor=NULL;
126 AliHLTModuleAgent* AliHLTModuleAgent::fCurrent=NULL;
127 int AliHLTModuleAgent::fCount=0;
129 AliHLTModuleAgent* AliHLTModuleAgent::GetFirstAgent()
131 // see header file for function documentation
136 AliHLTModuleAgent* AliHLTModuleAgent::GetNextAgent()
138 // see header file for function documentation
139 if (fCurrent!=NULL) fCurrent=fCurrent->fpNext;
143 int AliHLTModuleAgent::Register(AliHLTModuleAgent* pAgent)
145 // see header file for function documentation
147 if (!pAgent) return -EINVAL;
151 pAgent->fpNext=fAnchor;
154 // log.Logging(kHLTLogDebug, "AliHLTModuleAgent::Register", "", "module agent %p registered", pAgent);
159 int AliHLTModuleAgent::Unregister(AliHLTModuleAgent* pAgent)
161 // see header file for function documentation
163 if (!pAgent) return -EINVAL;
165 AliHLTModuleAgent* prev=NULL;
166 AliHLTModuleAgent* handler=fAnchor;
167 while (handler!=NULL && handler!=pAgent) {
169 handler=handler->fpNext;
173 fAnchor=handler->fpNext;
175 prev->fpNext=handler->fpNext;
177 //log.Logging(kHLTLogDebug, "AliHLTModuleAgent::Unregister", "", "module agent %p removed", pAgent);