16 #define NSUPERFRAG_MAX 80
29 FUShmRawCell::FUShmRawCell(
unsigned int payloadSize)
30 : payloadSize_(payloadSize)
35 unsigned int* fedSizeAddr;
37 new(fedSizeAddr)
unsigned int[
nFed_];
41 fedAddr=(
unsigned int*)((
unsigned long)
this+
fedOffset_);
45 unsigned int* superFragSizeAddr;
84 if (i>=
nFed()) {
cout<<
"invalid fed index '"<<i<<
"'."<<endl;
return 0; }
85 unsigned int* fedSizeAddr;
88 unsigned int result=*fedSizeAddr;
96 if (i>=
nFed()) {
cout<<
"invalid fed index '"<<i<<
"'."<<endl;
return 0; }
97 unsigned int* fedOffsetAddr;
98 fedOffsetAddr=(
unsigned int*)((
unsigned long)
this+
fedOffset_);
100 unsigned int fedOffset=*fedOffsetAddr;
109 if (i>=
nSuperFrag()) {
cout<<
"invalid sf index '"<<i<<
"'."<<endl;
return 0; }
110 unsigned int* superFragSizeAddr;
112 superFragSizeAddr+=
i;
113 unsigned int result=*superFragSizeAddr;
121 if (i>=
nSuperFrag()) {
cout<<
"invalid fed index '"<<i<<
"'."<<endl;
return 0; }
122 unsigned int* superFragOffsetAddr;
124 superFragOffsetAddr+=
i;
125 unsigned int superFragOffset=*superFragOffsetAddr;
126 unsigned char*
result=(
unsigned char*)((
unsigned long)
payloadAddr()+superFragOffset);
153 unsigned int* fedSizeAddr;
155 for (
unsigned int i=0;
i<
nFed();
i++) *fedSizeAddr++=0;
157 unsigned int* superFragSizeAddr;
159 for (
unsigned int i=0;
i<
nSuperFrag();
i++) *superFragSizeAddr++=0;
168 for (
unsigned int i=0;
i<
nFed();
i++) {
169 cout<<
"fed "<<
i<<
": "<<flush;
173 cout<<setiosflags(ios::right);
174 for (
unsigned int j=0;
j<
size;
j++)
175 cout<<setw(2)<<hex<<(int)addr[
j]<<dec<<
" "<<flush;
183 unsigned char* buffer)
const
186 unsigned char* addr=
fedAddr(i);
187 memcpy(buffer,addr,size);
194 unsigned int dataSize)
197 cout<<
"FUShmRawCell::writeData: data to be written does not fit!"<<endl;
204 memcpy(result,data,dataSize);
220 {
cout<<
"invalid fed index '"<<i<<
"'."<<endl;
return false; }
222 {
cout<<
"invalid fed addr '0x"<<hex<<(
unsigned long)addr<<dec<<
"'."<<endl;
return false; }
227 {
cout<<
"invalid fed addr '0x"<<hex<<(
unsigned long)addr<<dec<<
"'."<<endl;
return false; }
229 unsigned int* fedSizeAddr;
235 fedAddr=(
unsigned int*)((
unsigned long)
this+
fedOffset_);
249 {
cout<<
"invalid sf index '"<<i<<
"'."<<endl;
return false; }
251 {
cout<<
"invalid sf addr '0x"<<hex<<(
unsigned long)addr<<dec<<
"'."<<endl;
return false;}
256 {
cout<<
"invalid sf addr '0x"<<hex<<(
unsigned long)addr<<dec<<
"'."<<endl;
return false;}
258 unsigned int* superFragSizeAddr;
260 superFragSizeAddr+=
i;
261 *superFragSizeAddr=
size;
unsigned int payloadPosition_
unsigned int superFragOffset_
unsigned char * writeData(unsigned char *data, unsigned int dataSize)
bool markFed(unsigned int i, unsigned int size, unsigned char *addr)
static unsigned int size(unsigned int payloadSize)
void initialize(unsigned int index)
unsigned char * payloadAddr() const
unsigned char * superFragAddr(unsigned int i) const
unsigned int payloadOffset_
bool markSuperFrag(unsigned int i, unsigned int size, unsigned char *addr)
unsigned int offset(bool)
unsigned char * fedAddr(unsigned int i) const
unsigned int payloadSize() const
unsigned int readFed(unsigned int i, unsigned char *buffer) const
unsigned int fuResourceId_
unsigned int lumiSection_
unsigned int payloadSize_
unsigned int eventSize() const
unsigned int superFragSize(unsigned int i) const
unsigned int superFragSizeOffset_
unsigned int fedSizeOffset_
unsigned int buResourceId_
unsigned int index() const
void setLumiSection(unsigned int)
unsigned int nFed() const
char data[epos_bytes_allocation]
unsigned int nSuperFrag() const
unsigned int fedSize(unsigned int i) const
FUShmRawCell(unsigned int payloadSize)
tuple size
Write out results.