//
class ArchivableUi16 : public Kumu::IArchive
{
- ui16_t m_Value;
-
public:
- ArchivableUi16() : m_Value(0) {}
- ArchivableUi16(const ui16_t& value) : m_Value(value) {}
+ ui16_t value;
+
+ ArchivableUi16() : value(0) {}
+ ArchivableUi16(const ui16_t& val) : value(val) {}
virtual ~ArchivableUi16() {}
bool HasValue() const { return true; }
ui32_t ArchiveLength() const { return sizeof(ui16_t); }
+ operator ui16_t() const { return value; }
+
bool Archive(MemIOWriter* Writer) const {
if ( Writer == 0 ) return false;
- return Writer->WriteUi16BE(m_Value);
+ return Writer->WriteUi16BE(value);
}
bool Unarchive(MemIOReader* Reader) {
if ( Reader == 0 ) return false;
- return Reader->ReadUi16BE(&m_Value);
+ return Reader->ReadUi16BE(&value);
}
const char* EncodeString(char* str_buf, ui32_t buf_len) const {
- snprintf(str_buf, buf_len, "%hu", m_Value);
+ snprintf(str_buf, buf_len, "%hu", value);
return str_buf;
}
};
return false;
}
+ inline bool operator>(const Identifier& rhs) const {
+ ui32_t test_size = xmin(rhs.Size(), SIZE);
+
+ for ( ui32_t i = 0; i < test_size; i++ )
+ {
+ if ( m_Value[i] != rhs.m_Value[i] )
+ return m_Value[i] > rhs.m_Value[i];
+ }
+
+ return false;
+ }
+
inline bool operator==(const Identifier& rhs) const {
if ( rhs.Size() != SIZE ) return false;
return ( memcmp(m_Value, rhs.m_Value, SIZE) == 0 );