Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:12:12

0001 #ifndef FWCore_Framework_MessageForSource_h
0002 #define FWCore_Framework_MessageForSource_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     Framework
0006 // Class  :     MessageForSource
0007 //
0008 /**\class MessageForSource MessageForSource.h FWCore/Framework/interface/MessageForSource.h
0009 
0010  Description: Information passed from controller to source when doing multicore processing
0011 
0012  Usage:
0013     This class is an internal detail of how the parent process communicates to child processes.
0014  It is used with the posix sockets to send what events child processes should handle. The
0015  events are designated as a 'block' where we give the index to the first event in the block and
0016  then the number of consecutive events to process in the block.
0017 
0018  NOTE: If the number of consecutive events (i.e. nIndices) is 0, this means there is no more
0019  work to do and the child process should end.
0020  
0021 */
0022 //
0023 // Original Author:  Chris Jones
0024 //         Created:  Thu Dec 30 10:08:24 CST 2010
0025 //
0026 
0027 // system include files
0028 #include <cstddef>
0029 // user include files
0030 
0031 // forward declarations
0032 
0033 namespace edm {
0034   namespace multicore {
0035     class MessageForSource {
0036     public:
0037       MessageForSource() : startIndex(0), nIndices(0) {}
0038 
0039       //virtual ~MessageForSource();
0040 
0041       // ---------- const member functions ---------------------
0042 
0043       // ---------- static member functions --------------------
0044       static size_t sizeForBuffer() { return sizeof(MessageForSource); }
0045 
0046       // ---------- member functions ---------------------------
0047 
0048     public:
0049       //MessageForSource(const MessageForSource&); // allow default
0050 
0051       //const MessageForSource& operator=(const MessageForSource&); // allow default
0052 
0053       // ---------- member data --------------------------------
0054       unsigned long startIndex;  //which event index to start processing for this 'block'
0055       unsigned long nIndices;    //number of consecutive indicies in the block
0056     };
0057   }  // namespace multicore
0058 }  // namespace edm
0059 
0060 #endif