Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00008
00009
00010 #include "EventFilter/ShmBuffer/interface/FUShmBuffer.h"
00011 #include "EventFilter/ShmBuffer/bin/FUShmServer.h"
00012
00013 #include <iostream>
00014 #include <cstdlib>
00015 #include <sstream>
00016
00017
00018 using namespace std;
00019 using namespace evf;
00020
00021
00022
00023 int main(int argc,char**argv)
00024 {
00025 bool segmentationMode=false;
00026 unsigned int nCells =32;
00027 unsigned int nFed = 4;
00028 unsigned int bytesPerFed =10;
00029 unsigned int cellBufferSize =nFed*bytesPerFed;
00030
00031 if (argc>1) { stringstream ss; ss<<argv[1]; ss>>segmentationMode; }
00032
00033 cout<<" FUShmServer_t:"
00034 <<" segmentationMode="<<segmentationMode
00035 <<" nCells="<<nCells
00036 <<" nFed="<<nFed
00037 <<" bytesPerFed="<<bytesPerFed
00038 <<" cellBufferSize="<<cellBufferSize<<endl<<endl;
00039
00040 FUShmBuffer* buffer=FUShmBuffer::createShmBuffer(segmentationMode,
00041 nCells,0,0,
00042 cellBufferSize,0,0);
00043 if (0==buffer) return 1;
00044 FUShmServer* server=new FUShmServer(buffer);
00045
00046
00047
00048 unsigned char* data =new unsigned char[cellBufferSize];
00049 unsigned int* fedSize =new unsigned int[nFed];
00050 for (unsigned int i=0;i<nFed;i++) fedSize[i]=bytesPerFed;
00051
00052
00053
00054 while(1) {
00055
00056
00057 for (unsigned int i=0;i<cellBufferSize;i++) {
00058 unsigned int rnd=rand();
00059 double tmp=rnd/(double)RAND_MAX*255;
00060 rnd=(unsigned int)tmp;
00061 data[i]=(unsigned char)rnd;
00062 }
00063
00064 unsigned int iCell=server->writeNext(data,nFed,fedSize);
00065 cout<<"WROTE at index "<<iCell<<endl;
00066 }
00067
00068 return 0;
00069 }