46 enum EStatus { kBad = BIT(1), kGood = BIT(2), kEoB = BIT(3), kFail = BIT(4), kCorrupt = BIT(5) } ;
61 static const Char_t fC1 =
'E', fC2 =
'B';
106 UInt_t FreeSize()
const;
108 UInt_t Offset()
const;
114 UInt_t SetOffset(UInt_t off = 0);
120 virtual void Reset();
121 virtual void Reset(UInt_t);
130 virtual Bool_t Expand(UInt_t);
157 if ( s == Buffer::kCorrupt )
158 if ( fBuffer[fSize] != fC1 && fBuffer[fSize+1] != fC2 ) fStatus |= Buffer::kCorrupt;
164 inline Char_t * Buffer::GetBuffer() {
return fBuffer ; }
165 inline UInt_t Buffer::Size()
const {
return fSize; }
166 inline UInt_t Buffer::Offset()
const {
return fCurrent ; }
167 inline UInt_t Buffer::FreeSize()
const {
return fSize - fCurrent; }
169 if (FreeSize()>=
sizeof(Char_t)) { ::memcpy((fBuffer+fCurrent),&data,
sizeof(Char_t)); fCurrent +=
sizeof(Char_t); }
170 else fStatus = Buffer::kFail ;
174 if (FreeSize()>=
sizeof(Char_t)) { ::memcpy((fBuffer+fCurrent),&data,
sizeof(UChar_t)); fCurrent +=
sizeof(Char_t); }
175 else fStatus = Buffer::kFail ;
179 if (FreeSize()>=
sizeof(Short_t)) { ::memcpy((fBuffer+fCurrent),&data,
sizeof(Short_t)); fCurrent +=
sizeof(Short_t); }
180 else fStatus = Buffer::kFail ;
184 if (FreeSize()>=
sizeof(Short_t)) { ::memcpy((fBuffer+fCurrent),&data,
sizeof(UShort_t)); fCurrent +=
sizeof(UShort_t); }
185 else fStatus = Buffer::kFail ;
189 if (FreeSize()>=
sizeof(Int_t)) { ::memcpy((fBuffer+fCurrent),&data,
sizeof(Int_t)); fCurrent +=
sizeof(Int_t); }
190 else fStatus = Buffer::kFail ;
194 if (FreeSize()>=
sizeof(Int_t)) { ::memcpy((fBuffer+fCurrent),&data,
sizeof(UInt_t)); fCurrent +=
sizeof(UInt_t); }
195 else fStatus = Buffer::kFail ;
199 if (FreeSize()>=
sizeof(Float_t)) { ::memcpy((fBuffer+fCurrent),&data,
sizeof(Float_t)); fCurrent +=
sizeof(Float_t); }
200 else fStatus = Buffer::kFail ;
204 if (FreeSize()>=
sizeof(Double_t)) { ::memcpy((fBuffer+fCurrent),&data,
sizeof(Double_t));fCurrent +=
sizeof(Double_t); }
205 else fStatus = Buffer::kFail ;
221 if (FreeSize()>=
sizeof(Char_t)) { ::memcpy(&data,fBuffer+fCurrent,
sizeof(Char_t));fCurrent +=
sizeof(Char_t); }
222 else fStatus = Buffer::kFail ;
226 if (FreeSize()>=
sizeof(Char_t)) { ::memcpy(&data,fBuffer+fCurrent,
sizeof(UChar_t));fCurrent +=
sizeof(UChar_t); }
227 else fStatus = Buffer::kFail ;
231 if (FreeSize()>=
sizeof(Short_t)) { ::memcpy(&data,fBuffer+fCurrent,
sizeof(Short_t));fCurrent +=
sizeof(Short_t); }
232 else fStatus = Buffer::kFail ;
236 if (FreeSize()>=
sizeof(Short_t)) { ::memcpy(&data,fBuffer+fCurrent,
sizeof(UShort_t));fCurrent +=
sizeof(UShort_t); }
237 else fStatus = Buffer::kFail ;
241 if (FreeSize()>=
sizeof(Int_t)) { ::memcpy(&data,fBuffer+fCurrent,
sizeof(Int_t));fCurrent +=
sizeof(Int_t); }
242 else fStatus = Buffer::kFail ;
246 if (FreeSize()>=
sizeof(Int_t)) { ::memcpy(&data,fBuffer+fCurrent,
sizeof(UInt_t));fCurrent +=
sizeof(UInt_t); }
247 else fStatus = Buffer::kFail ;
251 if (FreeSize()>=
sizeof(Float_t)) { ::memcpy(&data,fBuffer+fCurrent,
sizeof(Float_t));fCurrent +=
sizeof(Float_t); }
252 else fStatus = Buffer::kFail ;
256 if (FreeSize()>=
sizeof(Double_t)) { ::memcpy(&data,fBuffer+fCurrent,
sizeof(Double_t));fCurrent +=
sizeof(Double_t); }
257 else fStatus = Buffer::kFail ;
301 if (FreeSize()>=
sizeof(Short_t)) {
Memory::Swap(data,fBuffer+fCurrent);fCurrent +=
sizeof(Short_t); }
302 else fStatus = Buffer::kFail ;
306 if (FreeSize()>=
sizeof(Short_t)) {
Memory::Swap(data,fBuffer+fCurrent); fCurrent +=
sizeof(Short_t); }
307 else fStatus = Buffer::kFail ;
311 if (FreeSize()>=
sizeof(Int_t)) {
Memory::Swap(data,fBuffer+fCurrent);fCurrent +=
sizeof(Int_t); }
312 else fStatus = Buffer::kFail ;
316 if (FreeSize()>=
sizeof(Int_t)) {
Memory::Swap(data,fBuffer+fCurrent);fCurrent +=
sizeof(Int_t); }
317 else fStatus = Buffer::kFail ;
322 if (FreeSize()>=
sizeof(Float_t)) {
Memory::Swap(data,fBuffer+fCurrent); fCurrent +=
sizeof(Float_t); }
323 else fStatus = Buffer::kFail ;
327 if (FreeSize()>=
sizeof(Double_t)){
Memory::Swap(data,fBuffer+fCurrent);fCurrent +=
sizeof(Double_t); }
328 else fStatus = Buffer::kFail ;
346 if (FreeSize()>=
sizeof(Short_t)){
Memory::Swap(fBuffer+fCurrent,data); fCurrent +=
sizeof(Short_t); }
347 else fStatus = Buffer::kFail ;
351 if (FreeSize()>=
sizeof(Short_t)){
Memory::Swap(fBuffer+fCurrent,data);fCurrent +=
sizeof(Short_t); }
352 else fStatus = Buffer::kFail ;
356 if (FreeSize()>=
sizeof(Int_t)){
Memory::Swap(fBuffer+fCurrent,data); fCurrent +=
sizeof(Int_t); }
357 else fStatus = Buffer::kFail ;
361 if (FreeSize()>=
sizeof(Int_t)){
Memory::Swap(fBuffer+fCurrent,data);fCurrent +=
sizeof(Int_t); }
362 else fStatus = Buffer::kFail ;
378 if (FreeSize()>=
sizeof(Float_t)){
Memory::Swap(fBuffer+fCurrent,data); fCurrent +=
sizeof(Float_t); }
379 else fStatus = Buffer::kFail ;
383 if (FreeSize()>=
sizeof(Double_t)){
Memory::Swap(fBuffer+fCurrent,data); fCurrent +=
sizeof(Double_t); }
384 else fStatus = Buffer::kFail ;
EEndian
The adjectives big-endian and little-endian refer to which bytes are most significant in multi-byte d...
std::istream & operator>>(std::istream &is, ADF::FactoryItem &item)
std::ostream & operator<<(std::ostream &os, const ADF::FactoryItem &item)
A buffer is used to read/write raw data buffers from/on files.
std::ostream & operator<<(std::ostream &out, const Parity &p)
to write a parity in a stream
A Endianbuffer is used to read/write raw data buffers from/on files.