Nebula
|
#include <tablesignature.h>
Basically a bitfield with packed ComponentIds.
Can be used to identify tables, or be used as a mask to query the database for tables that contain a certain set of components.
Public Member Functions | |
TableSignature () | |
default constructor. | |
TableSignature (TableSignature const &rhs) | |
copy constructor | |
TableSignature (Util::FixedArray< AttributeId > const &descriptors) | |
construct from fixed array of component ids | |
TableSignature (std::initializer_list< AttributeId > descriptors) | |
construct from component id initializer list, for convenience | |
TableSignature (AttributeId const *descriptors, SizeT num) | |
construct from component id pointer array | |
~TableSignature () | |
destructor | |
TableSignature & | operator= (TableSignature const &rhs) |
assignment operator | |
bool const | operator== (TableSignature const &rhs) const |
equality operator | |
bool const | IsValid () const |
check if signature is valid | |
bool const | IsSet (AttributeId component) const |
check if a single bit is set | |
void | FlipBit (AttributeId component) |
flip a bit. | |
void | SetBit (AttributeId component) |
set a bit. | |
void | ClearBit (AttributeId component) |
clear a bit. | |
Static Public Member Functions | |
static bool const | CheckBits (TableSignature const &src, TableSignature const &mask) |
(src & mask) == mask | |
static bool const | HasAny (TableSignature const &src, TableSignature const &mask) |
check if src has any of the bits in mask set ((src & mask) == 0) | |
Protected Member Functions | |
void | Setup (AttributeId const *descriptors, SizeT num) |
create bitfield from fixed array. | |
Protected Attributes | |
__m128i * | mask |
large bit field, using SSE registers | |
uint8_t | size |
number of SSE regs allocated | |
|
inline |
default constructor.
|
inline |
copy constructor
|
inline |
construct from fixed array of component ids
|
inline |
construct from component id initializer list, for convenience
|
inline |
construct from component id pointer array
|
inline |
destructor
|
inlinestatic |
(src & mask) == mask
This runs on the assumption that we never create a mask that contains more bits than necessary.
i.e, a mask that is 256 bits large but is zero in left most 128 bits is forbidden.
|
inline |
clear a bit.
|
inline |
flip a bit.
|
inlinestatic |
check if src has any of the bits in mask set ((src & mask) == 0)
This runs on the assumption that we never create a mask that contains more bits than necessary.
i.e, a mask that is 256 bits large but is zero in left most 128 bits is forbidden.
|
inline |
check if a single bit is set
|
inline |
check if signature is valid
|
inline |
assignment operator
|
inline |
equality operator
|
inline |
set a bit.
|
inlineprotected |
create bitfield from fixed array.
|
protected |
large bit field, using SSE registers
|
protected |
number of SSE regs allocated