tdaq-develop-2025-02-12
BitManipulator.h
1 #ifndef ots_BitManipulator_h
2 #define ots_BitManipulator_h
3 
4 #include <stdint.h>
5 #include <string>
6 
7 namespace ots
8 {
10 {
11  public:
12  BitManipulator(void);
13  ~BitManipulator(void);
14  static uint64_t insertBits(uint64_t& data,
15  uint64_t value,
16  unsigned int startBit,
17  unsigned int numberOfBits);
18  static uint64_t insertBits(std::string& data,
19  uint64_t value,
20  unsigned int startBit,
21  unsigned int numberOfBits);
22  static uint64_t reverseBits(uint64_t data,
23  unsigned int startBit,
24  unsigned int numberOfBits);
25  static uint32_t insertBits(uint32_t& data,
26  uint32_t value,
27  unsigned int startBit,
28  unsigned int numberOfBits);
29  static uint32_t insertBits(std::string& data,
30  uint32_t value,
31  unsigned int startBit,
32  unsigned int numberOfBits);
33  static uint32_t reverseBits(uint32_t data,
34  unsigned int startBit,
35  unsigned int numberOfBits);
36  static uint32_t readBits(uint32_t data,
37  unsigned int startBit,
38  unsigned int numberOfBits);
39 };
40 
41 } // namespace ots
42 
43 #endif