Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-09-11 22:29:29

0001 #ifndef FWCore_Framework_ModuleAbilityEnums_h
0002 #define FWCore_Framework_ModuleAbilityEnums_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     FWCore/Framework
0006 // Class  :     ModuleAbilityEnums
0007 //
0008 /**\class ModuleAbilityEnums ModuleAbilityEnums.h "FWCore/Framework/interface/ModuleAbilityEnums.h"
0009 
0010  Description: Enums used internally by framework to determine abilities of a module
0011 
0012  Usage:
0013     These are used internally by the framework
0014 
0015 */
0016 //
0017 // Original Author:  Chris Jones
0018 //         Created:  Tue, 07 May 2013 18:11:24 GMT
0019 //
0020 
0021 // system include files
0022 
0023 // user include files
0024 
0025 // forward declarations
0026 namespace edm {
0027   namespace module {
0028     typedef unsigned char AbilitiesType;
0029 
0030     enum class Abilities {
0031       kGlobalCache,
0032       kStreamCache,
0033       kInputProcessBlockCache,
0034       kRunCache,
0035       kLuminosityBlockCache,
0036       kRunSummaryCache,
0037       kLuminosityBlockSummaryCache,
0038       kWatchProcessBlock,
0039       kBeginProcessBlockProducer,
0040       kEndProcessBlockProducer,
0041       kBeginRunProducer,
0042       kEndRunProducer,
0043       kBeginLuminosityBlockProducer,
0044       kEndLuminosityBlockProducer,
0045       kOneSharedResources,
0046       kOneWatchRuns,
0047       kOneWatchLuminosityBlocks,
0048       kWatchInputFiles,
0049       kExternalWork,
0050       kAccumulator,
0051       kTransformer
0052     };
0053 
0054     namespace AbilityBits {
0055       enum Bits {
0056         kGlobalCache = 1,
0057         kStreamCache = 2,
0058         kRunCache = 4,
0059         kLuminosityBlockCache = 8,
0060         kRunSummaryCache = 16,
0061         kLuminosityBlockSummaryCache = 32,
0062         kBeginRunProducer = 64,
0063         kEndRunProducer = 128,
0064         kOneSharedResources = 256,
0065         kOneWatchRuns = 512,
0066         kOneWatchLuminosityBlocks = 1024,
0067         kWatchInputFiles = 2048
0068       };
0069     }
0070 
0071     namespace AbilityToTransitions {
0072       enum Bits {
0073         kBeginStream = AbilityBits::kStreamCache,
0074         kEndStream = AbilityBits::kStreamCache,
0075 
0076         kGlobalBeginRun = AbilityBits::kRunCache | AbilityBits::kRunSummaryCache | AbilityBits::kOneWatchRuns,
0077         kGlobalEndRun = AbilityBits::kRunCache | AbilityBits::kRunSummaryCache | AbilityBits::kEndRunProducer |
0078                         AbilityBits::kOneWatchRuns,
0079         kStreamBeginRun = AbilityBits::kStreamCache,
0080         kStreamEndRun = AbilityBits::kStreamCache | AbilityBits::kRunSummaryCache,
0081 
0082         kGlobalBeginLuminosityBlock = AbilityBits::kLuminosityBlockCache | AbilityBits::kLuminosityBlockSummaryCache |
0083                                       AbilityBits::kOneWatchLuminosityBlocks,
0084         kGlobalEndLuminosityBlock = AbilityBits::kLuminosityBlockCache | AbilityBits::kLuminosityBlockSummaryCache |
0085                                     AbilityBits::kOneWatchLuminosityBlocks,
0086         kStreamBeginLuminosityBlock = AbilityBits::kStreamCache | AbilityBits::kLuminosityBlockSummaryCache,
0087         kStreamEndLuminosityBlock = AbilityBits::kStreamCache | AbilityBits::kLuminosityBlockSummaryCache
0088 
0089       };
0090     }
0091   }  // namespace module
0092 }  // namespace edm
0093 
0094 #endif