CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
ProductHolderIndexAndSkipBit.h
Go to the documentation of this file.
1 #ifndef FWCore_Framework_ProductHolderIndexAndSkipBit_h
2 #define FWCore_Framework_ProductHolderIndexAndSkipBit_h
3 // -*- C++ -*-
4 //
5 // Package: FWCore/Framework
6 // Class : edm::ProductHolderIndexAndSkipBit
7 //
20 //
21 // Original Author: W. David Dagenhart
22 // Created: 3 October 2013
23 
25 
26 namespace edm {
27 
29  public:
31  value_(skipCurrentProcess ? s_skipMask | productHolderIndex :
32  ~s_skipMask & productHolderIndex) { }
34  bool specialIndexValue = (value_ & ProductHolderIndexValuesBit) != 0;
35  return specialIndexValue ? value_ | s_skipMask :
36  value_ & ~s_skipMask;
37  }
38  bool skipCurrentProcess() const { return (value_ & s_skipMask) != 0; }
39 
41  return value_ == r.value_;
42  }
43 
44  private:
45  static const unsigned int s_skipMask = 1U << 31;
46 
47  unsigned int value_;
48  };
49 }
50 #endif
ProductHolderIndexAndSkipBit(ProductHolderIndex productHolderIndex, bool skipCurrentProcess)
unsigned int ProductHolderIndex
bool operator==(ProductHolderIndexAndSkipBit const &r)
ProductHolderIndex productHolderIndex() const