Aggregate type signature computation + tests

This commit is contained in:
Pavel Kirienko
2014-02-28 11:19:16 +04:00
parent 3b67b15ff5
commit c6518d22f5
6 changed files with 163 additions and 19 deletions
+2 -5
View File
@@ -69,11 +69,8 @@ class DataTypeSignature
void mixin64(uint64_t x);
DataTypeSignature() : value_(0) { }
public:
static DataTypeSignature zero() { return DataTypeSignature(); }
DataTypeSignature() : value_(0) { }
explicit DataTypeSignature(uint64_t value) : value_(value) { }
void extend(DataTypeSignature dts);
@@ -100,7 +97,6 @@ public:
DataTypeDescriptor()
: kind_(DataTypeKind(0))
, id_(0)
, signature_(DataTypeSignature::zero())
, name_("")
{ }
@@ -121,6 +117,7 @@ public:
const char* getName() const { return name_; }
bool match(DataTypeKind kind, const char* name) const;
bool match(DataTypeKind kind, uint16_t id) const;
std::string toString() const;
@@ -64,7 +64,7 @@ public:
const DataTypeDescriptor* find(DataTypeKind kind, const char* name) const;
DataTypeSignature computeAggregateSignature(const DataTypeIDMask& msgs, const DataTypeIDMask& srvs) const;
DataTypeSignature computeAggregateSignature(DataTypeKind kind, DataTypeIDMask& inout_id_mask) const;
void getDataTypeIDMask(DataTypeKind kind, DataTypeIDMask& mask) const;