#include "AliHLTDomainEntry.h"
#include "Riostream.h"
#include "TString.h"
#include <cstring>
#include <cerrno>
ClassImp(AliHLTDomainEntry)
AliHLTDomainEntry::AliHLTDomainEntry() :
TObject(),
fExclude(kFALSE),
fUseSpec(kFALSE),
fType(kAliHLTVoidDataType),
fSpecification(kAliHLTVoidDataSpec)
{
}
AliHLTDomainEntry::AliHLTDomainEntry(const AliHLTDomainEntry& domain) :
TObject(domain),
fExclude(domain.fExclude),
fUseSpec(domain.fUseSpec),
fType(domain.fType),
fSpecification(domain.fSpecification)
{
}
AliHLTDomainEntry::AliHLTDomainEntry(const AliHLTComponentDataType& type) :
TObject(),
fExclude(kFALSE),
fUseSpec(kFALSE),
fType(type),
fSpecification(kAliHLTVoidDataSpec)
{
}
AliHLTDomainEntry::AliHLTDomainEntry(const char* blocktype, const char* origin) :
TObject(),
fExclude(kFALSE),
fUseSpec(kFALSE),
fType(),
fSpecification(kAliHLTVoidDataSpec)
{
char id[kAliHLTComponentDataTypefIDsize];
memset(&id, 0x0, sizeof(id));
for (int i = 0; i < kAliHLTComponentDataTypefIDsize && blocktype[i] != '\0'; i++)
{
id[i] = blocktype[i];
}
fType = AliHLTComponentDataTypeInitializer(id, origin);
}
AliHLTDomainEntry::AliHLTDomainEntry(const AliHLTComponentDataType& type, UInt_t spec) :
TObject(),
fExclude(kFALSE),
fUseSpec(kTRUE),
fType(type),
fSpecification(spec)
{
}
AliHLTDomainEntry::AliHLTDomainEntry(const char* blocktype, const char* origin, UInt_t spec) :
TObject(),
fExclude(kFALSE),
fUseSpec(kTRUE),
fType(),
fSpecification(spec)
{
char id[kAliHLTComponentDataTypefIDsize];
memset(&id, 0x0, sizeof(id));
for (int i = 0; i < kAliHLTComponentDataTypefIDsize && blocktype[i] != '\0'; i++)
{
id[i] = blocktype[i];
}
fType = AliHLTComponentDataTypeInitializer(id, origin);
}
AliHLTDomainEntry::AliHLTDomainEntry(Bool_t exclude, const AliHLTDomainEntry& domain) :
TObject(domain),
fExclude(exclude),
fUseSpec(domain.fUseSpec),
fType(domain.fType),
fSpecification(domain.fSpecification)
{
}
AliHLTDomainEntry::AliHLTDomainEntry(Bool_t exclude, const AliHLTComponentDataType& type) :
TObject(),
fExclude(exclude),
fUseSpec(kFALSE),
fType(type),
fSpecification(kAliHLTVoidDataSpec)
{
}
AliHLTDomainEntry::AliHLTDomainEntry(Bool_t exclude, const char* blocktype, const char* origin) :
TObject(),
fExclude(exclude),
fUseSpec(kFALSE),
fType(),
fSpecification(kAliHLTVoidDataSpec)
{
char id[kAliHLTComponentDataTypefIDsize];
memset(&id, 0x0, sizeof(id));
for (int i = 0; i < kAliHLTComponentDataTypefIDsize && blocktype[i] != '\0'; i++)
{
id[i] = blocktype[i];
}
fType = AliHLTComponentDataTypeInitializer(id, origin);
}
AliHLTDomainEntry::AliHLTDomainEntry(Bool_t exclude, const AliHLTComponentDataType& type, UInt_t spec) :
TObject(),
fExclude(exclude),
fUseSpec(kTRUE),
fType(type),
fSpecification(spec)
{
}
AliHLTDomainEntry::AliHLTDomainEntry(Bool_t exclude, const char* blocktype, const char* origin, UInt_t spec) :
TObject(),
fExclude(exclude),
fUseSpec(kTRUE),
fType(),
fSpecification(spec)
{
char id[kAliHLTComponentDataTypefIDsize];
memset(&id, 0x0, sizeof(id));
for (int i = 0; i < kAliHLTComponentDataTypefIDsize && blocktype[i] != '\0'; i++)
{
id[i] = blocktype[i];
}
fType = AliHLTComponentDataTypeInitializer(id, origin);
}
AliHLTDomainEntry::~AliHLTDomainEntry()
{
}
AliHLTDomainEntry& AliHLTDomainEntry::operator = (const AliHLTDomainEntry& domain)
{
if (this==&domain) return *this;
TObject::operator = (domain);
fType = domain.fType;
fUseSpec = domain.fUseSpec;
fSpecification = domain.fSpecification;
return *this;
}
bool AliHLTDomainEntry::IdenticalTo(const AliHLTDomainEntry& rhs) const
{
if (not MatchExactly(fType, rhs.fType)) return false;
return (fUseSpec == rhs.fUseSpec) and (fSpecification == rhs.fSpecification);
}
bool AliHLTDomainEntry::SubsetOf(const AliHLTDomainEntry& rhs) const
{
if (*this != rhs) return false;
bool thisTypeIsAny = strncmp(&fType.fID[0], kAliHLTAnyDataTypeID, kAliHLTComponentDataTypefIDsize) == 0;
bool rhsTypeIsAny = strncmp(&rhs.fType.fID[0], kAliHLTAnyDataTypeID, kAliHLTComponentDataTypefIDsize) == 0;
if (thisTypeIsAny and not rhsTypeIsAny) return false;
bool thisOriginIsAny = strncmp(&fType.fOrigin[0], kAliHLTDataOriginAny, kAliHLTComponentDataTypefOriginSize) == 0;
bool rhsOriginIsAny = strncmp(&rhs.fType.fOrigin[0], kAliHLTDataOriginAny, kAliHLTComponentDataTypefOriginSize) == 0;
if (thisOriginIsAny and not rhsOriginIsAny) return false;
bool thisSpecIsAny = not fUseSpec;
bool rhsSpecIsAny = not rhs.fUseSpec;
if (thisSpecIsAny and not rhsSpecIsAny) return false;
return true;
}
bool AliHLTDomainEntry::IntersectWith(const AliHLTDomainEntry& rhs, AliHLTDomainEntry& result) const
{
if (*this != rhs) return false;
bool thisTypeIsAny = strncmp(&fType.fID[0], kAliHLTAnyDataTypeID, kAliHLTComponentDataTypefIDsize) == 0;
bool thisOriginIsAny = strncmp(&fType.fOrigin[0], kAliHLTDataOriginAny, kAliHLTComponentDataTypefOriginSize) == 0;
bool thisSpecIsAny = not fUseSpec;
const AliHLTComponentDataType& type = (not thisTypeIsAny) ? fType : rhs.fType;
const AliHLTComponentDataType& origin = (not thisOriginIsAny) ? fType : rhs.fType;
Bool_t useSpec;
UInt_t spec;
if (not thisSpecIsAny)
{
useSpec = fUseSpec;
spec = fSpecification;
}
else
{
useSpec = rhs.fUseSpec;
spec = rhs.fSpecification;
}
if (useSpec)
{
result = AliHLTDomainEntry(type | origin.fOrigin, spec);
}
else
{
result = AliHLTDomainEntry(type | origin.fOrigin);
}
return true;
}
void AliHLTDomainEntry::Print(Option_t* option) const
{
cout << AsString().Data();
TString opt(option);
if (opt.Contains("noendl")) return;
cout << endl;
}
TString AliHLTDomainEntry::AsString() const
{
TString str;
if (strncmp(&fType.fID[0], kAliHLTAnyDataTypeID, kAliHLTComponentDataTypefIDsize) == 0)
{
for (int i = 0; i < kAliHLTComponentDataTypefIDsize; i++) str += "*";
}
else
{
for (int i = 0; i < kAliHLTComponentDataTypefIDsize; i++)
{
if (fType.fID[i] != '\0')
str += fType.fID[i];
else
str += "\\0";
}
}
str += ":";
if (strncmp(&fType.fOrigin[0], kAliHLTDataOriginAny, kAliHLTComponentDataTypefOriginSize) == 0)
{
for (int i = 0; i < kAliHLTComponentDataTypefOriginSize; i++) str += "*";
}
else
{
for (int i = 0; i < kAliHLTComponentDataTypefOriginSize; i++)
{
if (fType.fOrigin[i] != '\0')
str += fType.fOrigin[i];
else
str += "\\0";
}
}
str += ":";
if (fUseSpec)
{
char num[16];
sprintf(num, "0x%8.8X", fSpecification);
str += num;
}
else
{
str += "**********";
}
return str;
}
int AliHLTDomainEntry::AsBinary(AliHLTUInt32_t buffer[4]) const
{
if (!buffer) return -EINVAL;
AliHLTUInt32_t* tgt=buffer;
unsigned ii=0;
*tgt=0;
for ( ii=0; ii<4; ii++ ) {
*tgt |= ((AliHLTUInt32_t)(fType.fID[8-1-ii])) << (ii*8);
}
tgt++;
*tgt=0;
for ( ii=0; ii<4; ii++ ) {
*tgt |= ((AliHLTUInt32_t)(fType.fID[8-5-ii])) << (ii*8);
}
tgt++;
*tgt=0;
for ( ii=0; ii<4; ii++ ) {
*tgt |= ((AliHLTUInt32_t)(fType.fOrigin[4-1-ii])) << (ii*8);
}
tgt++;
if (fUseSpec)
*tgt = fSpecification;
else
*tgt = kAliHLTVoidDataSpec;
return 0;
}
AliHLTDomainEntry.cxx:100 AliHLTDomainEntry.cxx:101 AliHLTDomainEntry.cxx:102 AliHLTDomainEntry.cxx:103 AliHLTDomainEntry.cxx:104 AliHLTDomainEntry.cxx:105 AliHLTDomainEntry.cxx:106 AliHLTDomainEntry.cxx:107 AliHLTDomainEntry.cxx:108 AliHLTDomainEntry.cxx:109 AliHLTDomainEntry.cxx:110 AliHLTDomainEntry.cxx:111 AliHLTDomainEntry.cxx:112 AliHLTDomainEntry.cxx:113 AliHLTDomainEntry.cxx:114 AliHLTDomainEntry.cxx:115 AliHLTDomainEntry.cxx:116 AliHLTDomainEntry.cxx:117 AliHLTDomainEntry.cxx:118 AliHLTDomainEntry.cxx:119 AliHLTDomainEntry.cxx:120 AliHLTDomainEntry.cxx:121 AliHLTDomainEntry.cxx:122 AliHLTDomainEntry.cxx:123 AliHLTDomainEntry.cxx:124 AliHLTDomainEntry.cxx:125 AliHLTDomainEntry.cxx:126 AliHLTDomainEntry.cxx:127 AliHLTDomainEntry.cxx:128 AliHLTDomainEntry.cxx:129 AliHLTDomainEntry.cxx:130 AliHLTDomainEntry.cxx:131 AliHLTDomainEntry.cxx:132 AliHLTDomainEntry.cxx:133 AliHLTDomainEntry.cxx:134 AliHLTDomainEntry.cxx:135 AliHLTDomainEntry.cxx:136 AliHLTDomainEntry.cxx:137 AliHLTDomainEntry.cxx:138 AliHLTDomainEntry.cxx:139 AliHLTDomainEntry.cxx:140 AliHLTDomainEntry.cxx:141 AliHLTDomainEntry.cxx:142 AliHLTDomainEntry.cxx:143 AliHLTDomainEntry.cxx:144 AliHLTDomainEntry.cxx:145 AliHLTDomainEntry.cxx:146 AliHLTDomainEntry.cxx:147 AliHLTDomainEntry.cxx:148 AliHLTDomainEntry.cxx:149 AliHLTDomainEntry.cxx:150 AliHLTDomainEntry.cxx:151 AliHLTDomainEntry.cxx:152 AliHLTDomainEntry.cxx:153 AliHLTDomainEntry.cxx:154 AliHLTDomainEntry.cxx:155 AliHLTDomainEntry.cxx:156 AliHLTDomainEntry.cxx:157 AliHLTDomainEntry.cxx:158 AliHLTDomainEntry.cxx:159 AliHLTDomainEntry.cxx:160 AliHLTDomainEntry.cxx:161 AliHLTDomainEntry.cxx:162 AliHLTDomainEntry.cxx:163 AliHLTDomainEntry.cxx:164 AliHLTDomainEntry.cxx:165 AliHLTDomainEntry.cxx:166 AliHLTDomainEntry.cxx:167 AliHLTDomainEntry.cxx:168 AliHLTDomainEntry.cxx:169 AliHLTDomainEntry.cxx:170 AliHLTDomainEntry.cxx:171 AliHLTDomainEntry.cxx:172 AliHLTDomainEntry.cxx:173 AliHLTDomainEntry.cxx:174 AliHLTDomainEntry.cxx:175 AliHLTDomainEntry.cxx:176 AliHLTDomainEntry.cxx:177 AliHLTDomainEntry.cxx:178 AliHLTDomainEntry.cxx:179 AliHLTDomainEntry.cxx:180 AliHLTDomainEntry.cxx:181 AliHLTDomainEntry.cxx:182 AliHLTDomainEntry.cxx:183 AliHLTDomainEntry.cxx:184 AliHLTDomainEntry.cxx:185 AliHLTDomainEntry.cxx:186 AliHLTDomainEntry.cxx:187 AliHLTDomainEntry.cxx:188 AliHLTDomainEntry.cxx:189 AliHLTDomainEntry.cxx:190 AliHLTDomainEntry.cxx:191 AliHLTDomainEntry.cxx:192 AliHLTDomainEntry.cxx:193 AliHLTDomainEntry.cxx:194 AliHLTDomainEntry.cxx:195 AliHLTDomainEntry.cxx:196 AliHLTDomainEntry.cxx:197 AliHLTDomainEntry.cxx:198 AliHLTDomainEntry.cxx:199 AliHLTDomainEntry.cxx:200 AliHLTDomainEntry.cxx:201 AliHLTDomainEntry.cxx:202 AliHLTDomainEntry.cxx:203 AliHLTDomainEntry.cxx:204 AliHLTDomainEntry.cxx:205 AliHLTDomainEntry.cxx:206 AliHLTDomainEntry.cxx:207 AliHLTDomainEntry.cxx:208 AliHLTDomainEntry.cxx:209 AliHLTDomainEntry.cxx:210 AliHLTDomainEntry.cxx:211 AliHLTDomainEntry.cxx:212 AliHLTDomainEntry.cxx:213 AliHLTDomainEntry.cxx:214 AliHLTDomainEntry.cxx:215 AliHLTDomainEntry.cxx:216 AliHLTDomainEntry.cxx:217 AliHLTDomainEntry.cxx:218 AliHLTDomainEntry.cxx:219 AliHLTDomainEntry.cxx:220 AliHLTDomainEntry.cxx:221 AliHLTDomainEntry.cxx:222 AliHLTDomainEntry.cxx:223 AliHLTDomainEntry.cxx:224 AliHLTDomainEntry.cxx:225 AliHLTDomainEntry.cxx:226 AliHLTDomainEntry.cxx:227 AliHLTDomainEntry.cxx:228 AliHLTDomainEntry.cxx:229 AliHLTDomainEntry.cxx:230 AliHLTDomainEntry.cxx:231 AliHLTDomainEntry.cxx:232 AliHLTDomainEntry.cxx:233 AliHLTDomainEntry.cxx:234 AliHLTDomainEntry.cxx:235 AliHLTDomainEntry.cxx:236 AliHLTDomainEntry.cxx:237 AliHLTDomainEntry.cxx:238 AliHLTDomainEntry.cxx:239 AliHLTDomainEntry.cxx:240 AliHLTDomainEntry.cxx:241 AliHLTDomainEntry.cxx:242 AliHLTDomainEntry.cxx:243 AliHLTDomainEntry.cxx:244 AliHLTDomainEntry.cxx:245 AliHLTDomainEntry.cxx:246 AliHLTDomainEntry.cxx:247 AliHLTDomainEntry.cxx:248 AliHLTDomainEntry.cxx:249 AliHLTDomainEntry.cxx:250 AliHLTDomainEntry.cxx:251 AliHLTDomainEntry.cxx:252 AliHLTDomainEntry.cxx:253 AliHLTDomainEntry.cxx:254 AliHLTDomainEntry.cxx:255 AliHLTDomainEntry.cxx:256 AliHLTDomainEntry.cxx:257 AliHLTDomainEntry.cxx:258 AliHLTDomainEntry.cxx:259 AliHLTDomainEntry.cxx:260 AliHLTDomainEntry.cxx:261 AliHLTDomainEntry.cxx:262 AliHLTDomainEntry.cxx:263 AliHLTDomainEntry.cxx:264 AliHLTDomainEntry.cxx:265 AliHLTDomainEntry.cxx:266 AliHLTDomainEntry.cxx:267 AliHLTDomainEntry.cxx:268 AliHLTDomainEntry.cxx:269 AliHLTDomainEntry.cxx:270 AliHLTDomainEntry.cxx:271 AliHLTDomainEntry.cxx:272 AliHLTDomainEntry.cxx:273 AliHLTDomainEntry.cxx:274 AliHLTDomainEntry.cxx:275 AliHLTDomainEntry.cxx:276 AliHLTDomainEntry.cxx:277 AliHLTDomainEntry.cxx:278 AliHLTDomainEntry.cxx:279 AliHLTDomainEntry.cxx:280 AliHLTDomainEntry.cxx:281 AliHLTDomainEntry.cxx:282 AliHLTDomainEntry.cxx:283 AliHLTDomainEntry.cxx:284 AliHLTDomainEntry.cxx:285 AliHLTDomainEntry.cxx:286 AliHLTDomainEntry.cxx:287 AliHLTDomainEntry.cxx:288 AliHLTDomainEntry.cxx:289 AliHLTDomainEntry.cxx:290 AliHLTDomainEntry.cxx:291 AliHLTDomainEntry.cxx:292 AliHLTDomainEntry.cxx:293 AliHLTDomainEntry.cxx:294 AliHLTDomainEntry.cxx:295 AliHLTDomainEntry.cxx:296 AliHLTDomainEntry.cxx:297 AliHLTDomainEntry.cxx:298 AliHLTDomainEntry.cxx:299 AliHLTDomainEntry.cxx:300 AliHLTDomainEntry.cxx:301 AliHLTDomainEntry.cxx:302 AliHLTDomainEntry.cxx:303 AliHLTDomainEntry.cxx:304 AliHLTDomainEntry.cxx:305 AliHLTDomainEntry.cxx:306 AliHLTDomainEntry.cxx:307 AliHLTDomainEntry.cxx:308 AliHLTDomainEntry.cxx:309 AliHLTDomainEntry.cxx:310 AliHLTDomainEntry.cxx:311 AliHLTDomainEntry.cxx:312 AliHLTDomainEntry.cxx:313 AliHLTDomainEntry.cxx:314 AliHLTDomainEntry.cxx:315 AliHLTDomainEntry.cxx:316 AliHLTDomainEntry.cxx:317 AliHLTDomainEntry.cxx:318 AliHLTDomainEntry.cxx:319 AliHLTDomainEntry.cxx:320 AliHLTDomainEntry.cxx:321 AliHLTDomainEntry.cxx:322 AliHLTDomainEntry.cxx:323 AliHLTDomainEntry.cxx:324 AliHLTDomainEntry.cxx:325 AliHLTDomainEntry.cxx:326 AliHLTDomainEntry.cxx:327 AliHLTDomainEntry.cxx:328 AliHLTDomainEntry.cxx:329 AliHLTDomainEntry.cxx:330 AliHLTDomainEntry.cxx:331 AliHLTDomainEntry.cxx:332 AliHLTDomainEntry.cxx:333 AliHLTDomainEntry.cxx:334 AliHLTDomainEntry.cxx:335 AliHLTDomainEntry.cxx:336 AliHLTDomainEntry.cxx:337 AliHLTDomainEntry.cxx:338 AliHLTDomainEntry.cxx:339 AliHLTDomainEntry.cxx:340 AliHLTDomainEntry.cxx:341 AliHLTDomainEntry.cxx:342 AliHLTDomainEntry.cxx:343 AliHLTDomainEntry.cxx:344 AliHLTDomainEntry.cxx:345 AliHLTDomainEntry.cxx:346 AliHLTDomainEntry.cxx:347 AliHLTDomainEntry.cxx:348 AliHLTDomainEntry.cxx:349 AliHLTDomainEntry.cxx:350 AliHLTDomainEntry.cxx:351 AliHLTDomainEntry.cxx:352 AliHLTDomainEntry.cxx:353 AliHLTDomainEntry.cxx:354 AliHLTDomainEntry.cxx:355 AliHLTDomainEntry.cxx:356 AliHLTDomainEntry.cxx:357 AliHLTDomainEntry.cxx:358 AliHLTDomainEntry.cxx:359 AliHLTDomainEntry.cxx:360 AliHLTDomainEntry.cxx:361 AliHLTDomainEntry.cxx:362 AliHLTDomainEntry.cxx:363 AliHLTDomainEntry.cxx:364 AliHLTDomainEntry.cxx:365 AliHLTDomainEntry.cxx:366 AliHLTDomainEntry.cxx:367 AliHLTDomainEntry.cxx:368 AliHLTDomainEntry.cxx:369 AliHLTDomainEntry.cxx:370 AliHLTDomainEntry.cxx:371 AliHLTDomainEntry.cxx:372 AliHLTDomainEntry.cxx:373 AliHLTDomainEntry.cxx:374 AliHLTDomainEntry.cxx:375 AliHLTDomainEntry.cxx:376 AliHLTDomainEntry.cxx:377 AliHLTDomainEntry.cxx:378 AliHLTDomainEntry.cxx:379 AliHLTDomainEntry.cxx:380 AliHLTDomainEntry.cxx:381 AliHLTDomainEntry.cxx:382 AliHLTDomainEntry.cxx:383 AliHLTDomainEntry.cxx:384 AliHLTDomainEntry.cxx:385 AliHLTDomainEntry.cxx:386 AliHLTDomainEntry.cxx:387 AliHLTDomainEntry.cxx:388 AliHLTDomainEntry.cxx:389