CMS 3D CMS Logo

FUShmServer_t.cc File Reference

#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)


Function Documentation

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 }


Generated on Tue Jun 9 17:52:52 2009 for CMSSW by  doxygen 1.5.4