DataTypeDescriptor got name_

This commit is contained in:
Pavel Kirienko
2014-02-27 09:29:58 +04:00
parent bc54015265
commit d71ec29fcf
11 changed files with 87 additions and 40 deletions
+29 -13
View File
@@ -87,33 +87,49 @@ public:
};
struct DataTypeDescriptor
class DataTypeDescriptor
{
DataTypeKind kind_;
uint16_t id_;
DataTypeSignature signature_;
const char* name_;
public:
enum { MaxDataTypeID = Frame::MaxDataTypeID };
DataTypeKind kind;
uint16_t id;
DataTypeSignature signature;
DataTypeDescriptor()
: kind(DataTypeKind(0))
, id(0)
, signature(DataTypeSignature::zero())
: kind_(DataTypeKind(0))
, id_(0)
, signature_(DataTypeSignature::zero())
, name_("")
{ }
DataTypeDescriptor(DataTypeKind kind, uint16_t id, const DataTypeSignature& signature)
: kind(kind)
, id(id)
, signature(signature)
DataTypeDescriptor(DataTypeKind kind, uint16_t id, const DataTypeSignature& signature, const char* name)
: kind_(kind)
, id_(id)
, signature_(signature)
, name_(name)
{
assert(id <= MaxDataTypeID);
assert(kind < NumDataTypeKinds);
assert(name);
}
DataTypeKind getKind() const { return kind_; }
uint16_t getID() const { return id_; }
const DataTypeSignature& getSignature() const { return signature_; }
const char* getName() const { return name_; }
std::string toString() const;
bool operator!=(const DataTypeDescriptor& rhs) const { return !operator==(rhs); }
bool operator==(const DataTypeDescriptor& rhs) const
{
return (kind == rhs.kind) && (id == rhs.id) && (signature == rhs.signature);
return
(kind_ == rhs.kind_) &&
(id_ == rhs.id_) &&
(signature_ == rhs.signature_) &&
!std::strcmp(name_, rhs.name_);
}
};
@@ -32,7 +32,7 @@ class Dispatcher : Noncopyable
bool operator()(const TransferListenerBase* listener) const
{
assert(listener);
return id_ > listener->getDataTypeDescriptor().id;
return id_ > listener->getDataTypeDescriptor().getID();
}
};
@@ -95,7 +95,7 @@ class TransferListenerBase : public LinkedListNode<TransferListenerBase>
protected:
TransferListenerBase(const DataTypeDescriptor& data_type)
: data_type_(data_type)
, crc_base_(data_type.signature.toTransferCRC())
, crc_base_(data_type.getSignature().toTransferCRC())
{ }
virtual ~TransferListenerBase() { }
@@ -31,7 +31,7 @@ public:
: max_transfer_interval_(max_transfer_interval)
, data_type_(data_type)
, qos_(qos)
, crc_base_(data_type.signature.toTransferCRC())
, crc_base_(data_type.getSignature().toTransferCRC())
, dispatcher_(dispatcher)
{ }