#include "AliHLTModuleAgent.h"
#include "AliHLTOUTHandler.h"
ClassImp(AliHLTModuleAgent)
AliHLTModuleAgent::AliHLTModuleAgent(const char* id)
:
fpNext(NULL),
fpComponentHandler(NULL),
fModuleId(id)
{
Register(this);
}
const char* AliHLTModuleAgent::GetQAPlugins() const
{
return "";
}
const AliHLTModuleAgent::AliHLTOUTHandlerDesc AliHLTModuleAgent::fgkVoidHandlerDesc;
AliHLTModuleAgent::~AliHLTModuleAgent()
{
Unregister(this);
}
const char* AliHLTModuleAgent::GetModuleId() const
{
return fModuleId.Data();
}
void AliHLTModuleAgent::PrintStatus(const char* agent)
{
AliHLTLogging log;
if (agent) {
AliHLTModuleAgent* pCurrent=fgAnchor;
while (pCurrent!=NULL && strcmp(pCurrent->GetName(), agent)!=0) pCurrent=pCurrent->fpNext;
if (pCurrent) {
log.Logging(kHLTLogInfo, "AliHLTModuleAgent::PrintStatus", "module agents",
"agent %s available", pCurrent->GetName());
} else {
log.Logging(kHLTLogInfo, "AliHLTModuleAgent::PrintStatus", "module agents",
"agent %s not found", agent);
}
} else {
AliHLTModuleAgent* pCurrent=fgAnchor;
log.Logging(kHLTLogInfo, "AliHLT", "", "-----------------------");
log.Logging(kHLTLogInfo, "AliHLT", "", "available module agents");
if (pCurrent==NULL)
log.Logging(kHLTLogInfo, "AliHLT", "", " none");
while (pCurrent) {
TString msg;
msg.Form(" %s : %p", pCurrent->GetName(), pCurrent);
log.Logging(kHLTLogInfo, "AliHLT", "", msg.Data());
pCurrent=pCurrent->fpNext;
}
log.Logging(kHLTLogInfo, "AliHLT", "", "-----------------------");
}
}
UInt_t AliHLTModuleAgent::GetDetectorMask() const
{
return (UInt_t)(-1);
}
int AliHLTModuleAgent::CreateConfigurations(AliHLTConfigurationHandler* ,
AliRawReader* ,
AliRunLoader* ) const
{
return 0;
}
const char* AliHLTModuleAgent::GetReconstructionChains(AliRawReader* ,
AliRunLoader* ) const
{
return NULL;
}
const char* AliHLTModuleAgent::GetRequiredComponentLibraries() const
{
return NULL;
}
int AliHLTModuleAgent::GetHandlerDescription(AliHLTComponentDataType ,
AliHLTUInt32_t ,
AliHLTOUTHandlerDesc& ) const
{
return 0;
}
AliHLTOUTHandler* AliHLTModuleAgent::GetOutputHandler(AliHLTComponentDataType ,
AliHLTUInt32_t )
{
return NULL;
}
int AliHLTModuleAgent::DeleteOutputHandler(AliHLTOUTHandler* pInstance)
{
if (!pInstance) return -EINVAL;
HLTWarning("potential memory leak due to missing implementation, agent %s must implement function DeleteOutputHandler", GetModuleId());
return -ENOSYS;
}
int AliHLTModuleAgent::ActivateComponentHandler(AliHLTComponentHandler* pHandler)
{
int iResult=0;
if (pHandler==NULL) {
if (fpComponentHandler!=NULL) {
fpComponentHandler=NULL;
HLTWarning("deregistration of components not yet implemented");
}
return 0;
}
if (fpComponentHandler!=NULL) {
if (pHandler!=fpComponentHandler) {
HLTError("only one component handler can be activated per agent");
return -EINVAL;
}
return 0;
}
if ((iResult=RegisterComponents(pHandler))>=0) {
fpComponentHandler=pHandler;
}
return iResult;
}
int AliHLTModuleAgent::RegisterComponents(AliHLTComponentHandler* ) const
{
return 0;
}
AliHLTModulePreprocessor* AliHLTModuleAgent::GetPreprocessor()
{
return NULL;
}
AliHLTModuleAgent* AliHLTModuleAgent::fgAnchor=NULL;
AliHLTModuleAgent* AliHLTModuleAgent::fgCurrent=NULL;
int AliHLTModuleAgent::fgCount=0;
AliHLTModuleAgent* AliHLTModuleAgent::GetFirstAgent()
{
fgCurrent=fgAnchor;
return fgAnchor;
}
AliHLTModuleAgent* AliHLTModuleAgent::GetNextAgent()
{
if (fgCurrent!=NULL) fgCurrent=fgCurrent->fpNext;
return fgCurrent;
}
string AliHLTModuleAgent::GetAgentIds()
{
string ids;
ids.clear();
for (AliHLTModuleAgent* pCurrent=fgAnchor;
pCurrent;
pCurrent=pCurrent->fpNext) {
if (ids.size()>0) ids+=" ";
ids+=pCurrent->GetModuleId();
}
return ids;
}
int AliHLTModuleAgent::Register(AliHLTModuleAgent* pAgent)
{
AliHLTLogging log;
if (!pAgent) return -EINVAL;
AliHLTModuleAgent* current=fgAnchor;
while (current!=NULL) {
if (current == pAgent) return 0;
current = current->fpNext;
}
if (fgAnchor==NULL) {
fgAnchor=pAgent;
} else {
pAgent->fpNext=fgAnchor;
fgAnchor=pAgent;
}
fgCount++;
return 0;
}
int AliHLTModuleAgent::Unregister(AliHLTModuleAgent* pAgent)
{
AliHLTLogging log;
if (!pAgent) return -EINVAL;
fgCurrent=NULL;
AliHLTModuleAgent* prev=NULL;
AliHLTModuleAgent* handler=fgAnchor;
while (handler!=NULL && handler!=pAgent) {
prev=handler;
handler=handler->fpNext;
}
if (handler) {
if (prev==NULL) {
fgAnchor=handler->fpNext;
} else {
prev->fpNext=handler->fpNext;
}
fgCount--;
}
return 0;
}
AliHLTModuleAgent.cxx:100 AliHLTModuleAgent.cxx:101 AliHLTModuleAgent.cxx:102 AliHLTModuleAgent.cxx:103 AliHLTModuleAgent.cxx:104 AliHLTModuleAgent.cxx:105 AliHLTModuleAgent.cxx:106 AliHLTModuleAgent.cxx:107 AliHLTModuleAgent.cxx:108 AliHLTModuleAgent.cxx:109 AliHLTModuleAgent.cxx:110 AliHLTModuleAgent.cxx:111 AliHLTModuleAgent.cxx:112 AliHLTModuleAgent.cxx:113 AliHLTModuleAgent.cxx:114 AliHLTModuleAgent.cxx:115 AliHLTModuleAgent.cxx:116 AliHLTModuleAgent.cxx:117 AliHLTModuleAgent.cxx:118 AliHLTModuleAgent.cxx:119 AliHLTModuleAgent.cxx:120 AliHLTModuleAgent.cxx:121 AliHLTModuleAgent.cxx:122 AliHLTModuleAgent.cxx:123 AliHLTModuleAgent.cxx:124 AliHLTModuleAgent.cxx:125 AliHLTModuleAgent.cxx:126 AliHLTModuleAgent.cxx:127 AliHLTModuleAgent.cxx:128 AliHLTModuleAgent.cxx:129 AliHLTModuleAgent.cxx:130 AliHLTModuleAgent.cxx:131 AliHLTModuleAgent.cxx:132 AliHLTModuleAgent.cxx:133 AliHLTModuleAgent.cxx:134 AliHLTModuleAgent.cxx:135 AliHLTModuleAgent.cxx:136 AliHLTModuleAgent.cxx:137 AliHLTModuleAgent.cxx:138 AliHLTModuleAgent.cxx:139 AliHLTModuleAgent.cxx:140 AliHLTModuleAgent.cxx:141 AliHLTModuleAgent.cxx:142 AliHLTModuleAgent.cxx:143 AliHLTModuleAgent.cxx:144 AliHLTModuleAgent.cxx:145 AliHLTModuleAgent.cxx:146 AliHLTModuleAgent.cxx:147 AliHLTModuleAgent.cxx:148 AliHLTModuleAgent.cxx:149 AliHLTModuleAgent.cxx:150 AliHLTModuleAgent.cxx:151 AliHLTModuleAgent.cxx:152 AliHLTModuleAgent.cxx:153 AliHLTModuleAgent.cxx:154 AliHLTModuleAgent.cxx:155 AliHLTModuleAgent.cxx:156 AliHLTModuleAgent.cxx:157 AliHLTModuleAgent.cxx:158 AliHLTModuleAgent.cxx:159 AliHLTModuleAgent.cxx:160 AliHLTModuleAgent.cxx:161 AliHLTModuleAgent.cxx:162 AliHLTModuleAgent.cxx:163 AliHLTModuleAgent.cxx:164 AliHLTModuleAgent.cxx:165 AliHLTModuleAgent.cxx:166 AliHLTModuleAgent.cxx:167 AliHLTModuleAgent.cxx:168 AliHLTModuleAgent.cxx:169 AliHLTModuleAgent.cxx:170 AliHLTModuleAgent.cxx:171 AliHLTModuleAgent.cxx:172 AliHLTModuleAgent.cxx:173 AliHLTModuleAgent.cxx:174 AliHLTModuleAgent.cxx:175 AliHLTModuleAgent.cxx:176 AliHLTModuleAgent.cxx:177 AliHLTModuleAgent.cxx:178 AliHLTModuleAgent.cxx:179 AliHLTModuleAgent.cxx:180 AliHLTModuleAgent.cxx:181 AliHLTModuleAgent.cxx:182 AliHLTModuleAgent.cxx:183 AliHLTModuleAgent.cxx:184 AliHLTModuleAgent.cxx:185 AliHLTModuleAgent.cxx:186 AliHLTModuleAgent.cxx:187 AliHLTModuleAgent.cxx:188 AliHLTModuleAgent.cxx:189 AliHLTModuleAgent.cxx:190 AliHLTModuleAgent.cxx:191 AliHLTModuleAgent.cxx:192 AliHLTModuleAgent.cxx:193 AliHLTModuleAgent.cxx:194 AliHLTModuleAgent.cxx:195 AliHLTModuleAgent.cxx:196 AliHLTModuleAgent.cxx:197 AliHLTModuleAgent.cxx:198 AliHLTModuleAgent.cxx:199 AliHLTModuleAgent.cxx:200 AliHLTModuleAgent.cxx:201 AliHLTModuleAgent.cxx:202 AliHLTModuleAgent.cxx:203 AliHLTModuleAgent.cxx:204 AliHLTModuleAgent.cxx:205 AliHLTModuleAgent.cxx:206 AliHLTModuleAgent.cxx:207 AliHLTModuleAgent.cxx:208 AliHLTModuleAgent.cxx:209 AliHLTModuleAgent.cxx:210 AliHLTModuleAgent.cxx:211 AliHLTModuleAgent.cxx:212 AliHLTModuleAgent.cxx:213 AliHLTModuleAgent.cxx:214 AliHLTModuleAgent.cxx:215 AliHLTModuleAgent.cxx:216 AliHLTModuleAgent.cxx:217 AliHLTModuleAgent.cxx:218 AliHLTModuleAgent.cxx:219 AliHLTModuleAgent.cxx:220 AliHLTModuleAgent.cxx:221 AliHLTModuleAgent.cxx:222 AliHLTModuleAgent.cxx:223 AliHLTModuleAgent.cxx:224 AliHLTModuleAgent.cxx:225 AliHLTModuleAgent.cxx:226 AliHLTModuleAgent.cxx:227 AliHLTModuleAgent.cxx:228 AliHLTModuleAgent.cxx:229 AliHLTModuleAgent.cxx:230 AliHLTModuleAgent.cxx:231 AliHLTModuleAgent.cxx:232 AliHLTModuleAgent.cxx:233 AliHLTModuleAgent.cxx:234 AliHLTModuleAgent.cxx:235 AliHLTModuleAgent.cxx:236 AliHLTModuleAgent.cxx:237 AliHLTModuleAgent.cxx:238 AliHLTModuleAgent.cxx:239 AliHLTModuleAgent.cxx:240 AliHLTModuleAgent.cxx:241 AliHLTModuleAgent.cxx:242 AliHLTModuleAgent.cxx:243 AliHLTModuleAgent.cxx:244 AliHLTModuleAgent.cxx:245 AliHLTModuleAgent.cxx:246 AliHLTModuleAgent.cxx:247 AliHLTModuleAgent.cxx:248 AliHLTModuleAgent.cxx:249 AliHLTModuleAgent.cxx:250 AliHLTModuleAgent.cxx:251 AliHLTModuleAgent.cxx:252 AliHLTModuleAgent.cxx:253 AliHLTModuleAgent.cxx:254 AliHLTModuleAgent.cxx:255 AliHLTModuleAgent.cxx:256 AliHLTModuleAgent.cxx:257 AliHLTModuleAgent.cxx:258 AliHLTModuleAgent.cxx:259 AliHLTModuleAgent.cxx:260 AliHLTModuleAgent.cxx:261 AliHLTModuleAgent.cxx:262 AliHLTModuleAgent.cxx:263 AliHLTModuleAgent.cxx:264 AliHLTModuleAgent.cxx:265 AliHLTModuleAgent.cxx:266 AliHLTModuleAgent.cxx:267 AliHLTModuleAgent.cxx:268 AliHLTModuleAgent.cxx:269 AliHLTModuleAgent.cxx:270 AliHLTModuleAgent.cxx:271 AliHLTModuleAgent.cxx:272 AliHLTModuleAgent.cxx:273 AliHLTModuleAgent.cxx:274 AliHLTModuleAgent.cxx:275 AliHLTModuleAgent.cxx:276 AliHLTModuleAgent.cxx:277