|
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