NUMA++ 0.11.0
Loading...
Searching...
No Matches
numapp::Bitmask< Class > Class Template Reference

Generic bitmask. More...

#include <bitmask.hpp>

Public Member Functions

Bitmaskoperator= (Bitmask const &rhs) noexcept
 Copy from rhs to this.
 
Comparison
bool operator== (Bitmask const &rhs) const noexcept
 
bool operator!= (Bitmask const &rhs) const noexcept
 
Accessors
struct bitmask const * GetNative () const noexcept
 Access native bitmask type.
 
struct bitmask * GetNative () noexcept
 Access native bitmask type.
 
std::size_t GetSize () const noexcept
 Query number of bits in mask.
 
bool Test (unsigned int position) const noexcept
 Test if bit in specified position is set.
 
Modifiers

If specified bit position is outside valid range no operations is performed.

This behaviour is inherited from libnuma.

BitmaskSet (unsigned int position, bool value=true) noexcept
 Set bit in position to specified value.
 
BitmaskReset (unsigned int position) noexcept
 Sets bit in specified position to false.
 

Protected Member Functions

 Bitmask (NumaBitmaskPtr &&bitmask)
 Construction from native bitmask type can be error prone in that the mask wasn't allocated using the correction function.
 

Related Symbols

(Note that these are not member symbols.)

template<class Class, class F>
void ForEach (Bitmask< Class > const &bitmask, F &&f, bool value=true)
 Invoke function for each bit in mask that matches value.
 
template<class Class>
std::ostream & FormatBitmask (std::ostream &os, Bitmask< Class > const &mask, int min_bits)
 Formats mask and inserts it to os.
 
std::ostream & FormatBitmask (std::ostream &os, bitmask const *mask, int min_bits)
 Formats mask and inserts it to os.
 

Detailed Description

template<class Class>
class numapp::Bitmask< Class >

Generic bitmask.

Definition at line 55 of file bitmask.hpp.

Constructor & Destructor Documentation

◆ Bitmask()

template<class Class>
numapp::Bitmask< Class >::Bitmask ( NumaBitmaskPtr && bitmask)
inlineprotected

Construction from native bitmask type can be error prone in that the mask wasn't allocated using the correction function.

To prevent mistakes this is made protected so it can only be used by the concrete implementations.

Definition at line 180 of file bitmask.hpp.

Member Function Documentation

◆ GetNative() [1/2]

template<class Class>
struct bitmask const * numapp::Bitmask< Class >::GetNative ( ) const
inlinenoexcept

Access native bitmask type.

Returns
pointer to libnuma bitmask type.

Definition at line 104 of file bitmask.hpp.

◆ GetNative() [2/2]

template<class Class>
struct bitmask * numapp::Bitmask< Class >::GetNative ( )
inlinenoexcept

Access native bitmask type.

Returns
pointer to libnuma bitmask type.

Definition at line 112 of file bitmask.hpp.

◆ GetSize()

template<class Class>
std::size_t numapp::Bitmask< Class >::GetSize ( ) const
inlinenodiscardnoexcept

Query number of bits in mask.

Returns
number of bits in mask.

Definition at line 121 of file bitmask.hpp.

◆ operator!=()

template<class Class>
bool numapp::Bitmask< Class >::operator!= ( Bitmask< Class > const & rhs) const
inlinenodiscardnoexcept
Returns
true if bitmask are equal.

Definition at line 90 of file bitmask.hpp.

◆ operator=()

template<class Class>
Bitmask & numapp::Bitmask< Class >::operator= ( Bitmask< Class > const & rhs)
inlinenoexcept

Copy from rhs to this.

Parameters
rhsbitmask to copy from.
Returns
reference to this.

Definition at line 71 of file bitmask.hpp.

◆ operator==()

template<class Class>
bool numapp::Bitmask< Class >::operator== ( Bitmask< Class > const & rhs) const
inlinenodiscardnoexcept
Returns
true if bitmask are equal.

Definition at line 84 of file bitmask.hpp.

◆ Reset()

template<class Class>
Bitmask & numapp::Bitmask< Class >::Reset ( unsigned int position)
inlinenoexcept

Sets bit in specified position to false.

Note
If position is outside valid range nothing is done.
Parameters
positionZero-indexed bit position to modify.
Returns
Reference to this object (for call chaining).

Definition at line 169 of file bitmask.hpp.

◆ Set()

template<class Class>
Bitmask & numapp::Bitmask< Class >::Set ( unsigned int position,
bool value = true )
inlinenoexcept

Set bit in position to specified value.

Note
If position is outside valid range nothing is done.
Parameters
positionZero-indexed bit position to modify.
valueBit value to set (default true).
Returns
Reference to this object (for call chaining).

Definition at line 152 of file bitmask.hpp.

◆ Test()

template<class Class>
bool numapp::Bitmask< Class >::Test ( unsigned int position) const
inlinenodiscardnoexcept

Test if bit in specified position is set.

Parameters
positionZero-indexed bit position to test.
Returns
value of bit in requested position or false if position is outside valid range.

Definition at line 131 of file bitmask.hpp.


The documentation for this class was generated from the following file: