#include "EventFilter/ShmBuffer/interface/FUShmBuffer.h"
#include "EventFilter/ShmBuffer/bin/FUShmServer.h"
#include <iostream>
#include <cstdlib>
#include <sstream>
Go to the source code of this file.
Functions | |
int | main (int argc, char **argv) |
Definition at line 23 of file FUShmServer_t.cc.
References GenMuonPlsPt100GeV_cfg::cout, data, lat::endl(), i, filesave_online::server, ss, tmp, and evf::FUShmServer::writeNext().
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 // the fake data written to shared memory 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 // server loop 00054 while(1) { 00055 00056 // generate data 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 }