BitsetParser.cci
Go to the documentation of this file.
1 //
2 // Copyright (c) 2020 Fraunhofer Institute for Applied Information Technology (FIT)
3 // Network Research Group (NET)
4 // Schloss Birlinghoven, 53754 Sankt Augustin, GERMANY
5 // Contact: support@wiback.org
6 //
7 // This file is part of the SENF code tree.
8 // It is licensed under the 3-clause BSD License (aka New BSD License).
9 // See LICENSE.txt in the top level directory for details or visit
10 // https://opensource.org/licenses/BSD-3-Clause
11 //
12 
13 
14 /** \file
15  \brief BitsetParser inline non-template implementation */
16 
17 // Custom includes
18 
19 #define prefix_ inline
20 //-/////////////////////////////////////////////////////////////////////////////////////////////////
21 
22 //-/////////////////////////////////////////////////////////////////////////////////////////////////
23 // senf::LSB0Endianness
24 
25 prefix_ std::size_t senf::LSB0Endianness::bytePosition(std::size_t totalBytes, std::size_t bitPos)
26 {
27  return totalBytes-1 - bitPos/8;
28 }
29 
30 prefix_ std::size_t senf::LSB0Endianness::bit(std::size_t bitPos)
31 {
32  return 1u << (bitPos%8);
33 }
34 
35 //-/////////////////////////////////////////////////////////////////////////////////////////////////
36 // senf::MSB0Endianness
37 
38 prefix_ std::size_t senf::MSB0Endianness::bytePosition(std::size_t totalBytes, std::size_t bitPos)
39 {
40  return bitPos / 8;
41 }
42 
43 prefix_ std::size_t senf::MSB0Endianness::bit(std::size_t bitPos)
44 {
45  return 1u << (7-(bitPos%8));
46 }
47 
48 //-/////////////////////////////////////////////////////////////////////////////////////////////////
49 #undef prefix_