GRSISort
Created by P.C. Bender
Developement Team: P.C. Bender, R. Dunlop, V. Bildstein
An extension of the ROOT analysis Framework
TTransientBits.h
Go to the documentation of this file.
1 #ifndef _TTRANSIENTBITS_H_
2 #define _TTRANSIENTBITS_H_
3 
4 /** \addtogroup Sorting
5  * @{
6  */
7 
8 ////////////////////////////////////////////////////////////////////////////////
9 ///
10 /// \class TTransientBits
11 ///
12 /// Class for storing bits for transient data members
13 ///
14 ////////////////////////////////////////////////////////////////////////////////
15 
16 #include <sstream>
17 #include <iomanip>
18 #include <string>
19 #include <map>
20 #include <algorithm>
21 
22 #include "Rtypes.h"
23 
24 template <typename T>
26 public:
28  TTransientBits(const T& tmp) : fBits(tmp) {}
29  ~TTransientBits() = default;
30 
31  void SetBit(T f, Bool_t flag) { flag ? SetBit(f) : ClearBit(f); }
32  void SetBit(T f) { fBits |= f; }
33  void ClearBit(T f) { fBits &= ~f; }
34  Bool_t TestBit(T f) const { return fBits & f; }
35  T TestBits(T f) const { return (fBits & f); }
36  template <typename U>
37  void SetBit(U f, Bool_t flag) { flag ? SetBit(f) : ClearBit(f); }
38  template <typename U>
39  void SetBit(U f) { fBits |= static_cast<typename std::underlying_type<U>::type>(f); }
40  template <typename U>
41  void ClearBit(U f) { fBits &= ~static_cast<typename std::underlying_type<U>::type>(f); }
42  template <typename U>
43  Bool_t TestBit(U f) const { return fBits & static_cast<typename std::underlying_type<U>::type>(f); }
44  template <typename U>
45  T TestBits(U f) const { return (fBits & static_cast<typename std::underlying_type<U>::type>(f)); }
46 
47  TTransientBits& operator=(const T& rhs)
48  {
49  fBits = rhs;
50  return *this;
51  }
52  T Value() const { return fBits; }
53 
54  void Clear() { fBits = 0; }
55  void Print() const { std::count<<fBits<<std::endl; }
56 
57  T fBits;
58 
59  // ClassDefT(TTransientBits<T>,0);
60 };
61 
62 /*! @} */
63 #endif /* _TTRANSIENTBITS_H_ */
Bool_t TestBit(U f) const
T TestBits(T f) const
TTransientBits(const T &tmp)
void SetBit(T f, Bool_t flag)
void ClearBit(U f)
~TTransientBits()=default
Bool_t TestBit(T f) const
void SetBit(U f, Bool_t flag)
TTransientBits & operator=(const T &rhs)
void SetBit(U f)
void SetBit(T f)
T Value() const
void ClearBit(T f)
void Print() const
T TestBits(U f) const