Serial elements in a LSS are uniquely identified by a 64 bit Serial Element Identifier (Seid).
A null Seid contains zeros for both the low and high 32 bits. A null Seid is never used for a serial element in the LSS.
// Low 32 bits and high 32 bits of a 64 bit Serial element Id (Seid)
typedef uint32 SeidPart;
typedef SeidPart SeidHigh;
typedef SeidPart SeidLow;
class Seid
{
public:
Seid();
Seid(SeidLow low,SeidHigh high);
explicit Seid(uint64 v);
bool IsNull() const;
void SetNull();
SeidLow Low() const;
void SetLow(SeidLow low);
SeidHigh High() const;
void SetHigh(SeidHigh high);
uint64 Value() const;
void SetValue(uint64 value);
private:
[ implementation ]
};
Seid()
Default constructor initialises the Seid with the null value.
Seid(SeidLow low,SeidHigh high)
Constructor initialises the Seid with the given low and high 32 bit values.
explicit Seid(uint64 v)
Constructor initialises the Seid with the given unsigned 64 bit value.
bool IsNull()
Returns true if the Seid is null.
void SetNull()
Set the Seid to the null value.
SeidLow Low() const
Get the low 32 bit value of the Seid
void SetLow(SeidLow low)
Set the low 32 bit value of the Seid
SeidHigh High() const
Get the high 32 bit value of the Seid
void SetHigh(SeidHigh high)
Set the high 32 bit value of the Seid
uint64 Value() const
Get the value of the Seid as an unsigned 64 bit value.
void SetValue(uint64 value)
Set the Seid with the given unsigned 64 bit value.
The 6 comparison operations == != < <= > >=
are available on Seids and are equivalent
to the corresponding comparisons as unsigned 64 bit numbers.
A Seid is serialised as a sequence of 8 bytes, starting with the least significant byte (i.e. little-endian [] byte order).
Archive& operator<<(Archive& ar, Seid x);
InputArchive operator>>(InputArchive ar, Seid& x);