72 fIndices = new UShort_t[fN];
73 for (Int_t i=0; i<fN; i++)
74 fIndices[i] = eblock.fIndices[i];
82 fLastIndexReturned = -1;
83 fLastIndexQueried = -1;
100 if (
this != &eblock) {
130 Error(
"Enter",
"illegal entry value!");
142 Int_t j = entry & 15;
168 Error(
"Remove",
"Illegal entry value!\n");
173 Int_t j = entry & 15;
196 Error(
"Contains",
"Illegal entry value!\n");
204 Int_t j = entry & 15;
205 bool result = (
fIndices[i] & (1<<j))!=0;
262 if (block->
fType == 0){
280 for (j=0; j<block->
fIndices[0]; j++)
282 for (i=0; i<block->
fNPassed-1; i++){
300 if (block->
fType==1){
310 while (elpos < en &&
fIndices[i] > elst[elpos]) {
311 newlist[newpos] = elst[elpos];
315 if (
fIndices[i] == elst[elpos]) elpos++;
320 newlist[newpos] = elst[elpos];
334 Int_t newpos, current;
335 newpos = current = 0;
339 newlist[newpos] =
fIndices[current];
343 if (
fIndices[current]==i) current++;
348 newlist[newpos] =
fIndices[current];
391 while (entries_found<entry+1){
392 if (j==15){i++; j=0;}
415 if (entries_found==entry+1){
423 if (entries_found==entry+1){
431 if (entries_found==entry+1){
461 bool result=(
fIndices[i] & (1<<j))!=0;
463 if (j==15) {j=0; i++;}
465 result = (
fIndices[i] & (1<<j)) != 0;
494 TString opt = option;
512 result = (
fIndices[ibite] & (1<<ibit))!=0;
514 printf(
"%d\n", i+shift);
524 printf(
"%d\n", i+shift);
528 printf(
"%d\n", i+shift);
532 printf(
"%d\n", j+shift);
536 printf(
"%d\n", j+shift);
548 if (
fType!=0)
return;
572 bool result = (
fIndices[ibite] & (1<<ibit))!=0;
600 indexnew[ibite] |= 1<<ibit;
608 indexnew[ibite] ^= 1<<ibit;
unsigned short UShort_t
Unsigned Short integer 2 bytes (unsigned short).
int Int_t
Signed integer 4 bytes (int).
const char Option_t
Option string (const char).
Int_t fLastIndexQueried
! to optimize GetEntry() in a loop
TEntryListBlock & operator=(const TEntryListBlock &rhs)
Int_t fType
0 - bits, 1 - list
Int_t fNPassed
number of entries in the entry list (if fPassing=0 - number of entries not in the entry list
bool fPassing
1 - stores entries that belong to the list 0 - stores entries that don't belong to the list
void Transform(bool dir, UShort_t *indexnew)
void PrintWithShift(Int_t shift) const
~TEntryListBlock() override
Int_t fN
size of fIndices for I/O =fNPassed for list, fBlockSize for bits
Int_t fLastIndexReturned
! to optimize GetEntry() in a loop
UShort_t fCurrent
! to fasten Contains() in list mode
Int_t Contains(Int_t entry)
Int_t GetEntry(Int_t entry)
void Print(const Option_t *option="") const override
Int_t Merge(TEntryListBlock *block)
Mother of all ROOT objects.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
void ToUpper()
Change string to upper case.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const