DATAKIT API  V2025.1
dtk_uuid.hpp
Go to the documentation of this file.
1 #ifndef __DTK_UUID_HPP__
2 #define __DTK_UUID_HPP__
3 
4 #include <iosfwd>
5 #include "def/define.h"
6 
7 class Dtk_UUID
8 {
9 private:
10  Dtk_Int32 _vals[ 4 ];
11 public:
12  Dtk_UUID() { _vals[ 0 ] = _vals[ 1 ] = _vals[ 2 ] = _vals[ 3 ] = 0; };
13  Dtk_UUID( const Dtk_UUID & s )
14  {
15  _vals[ 0 ] = s._vals[ 0 ];
16  _vals[ 1 ] = s._vals[ 1 ];
17  _vals[ 2 ] = s._vals[ 2 ];
18  _vals[ 3 ] = s._vals[ 3 ];
19  };
20  Dtk_UUID( const Dtk_Int32( &inVals )[ 4 ] )
21  {
22  _vals[ 0 ] = inVals[ 0 ];
23  _vals[ 1 ] = inVals[ 1 ];
24  _vals[ 2 ] = inVals[ 2 ];
25  _vals[ 3 ] = inVals[ 3 ];
26  };
27  Dtk_UUID( const Dtk_Int32 inVal1, const Dtk_Int32 inVal2, const Dtk_Int32 inVal3, const Dtk_Int32 inVal4 )
28  {
29  _vals[ 0 ] = inVal1;
30  _vals[ 1 ] = inVal2;
31  _vals[ 2 ] = inVal3;
32  _vals[ 3 ] = inVal4;
33  };
34  Dtk_Int32& operator []( Dtk_Size_t pos ) { return ( pos < 4 ) ? _vals[ pos ] : _vals[ 3 ]; }
35  const Dtk_Int32& operator []( Dtk_Size_t pos ) const { return ( pos < 4 ) ? _vals[ pos ] : _vals[ 3 ]; }
36  void Increment();
37  int CompareTo( const Dtk_UUID& inUuid ) const;
38  static void GenerateRandomUUID( Dtk_UUID& outRes );
39  void clear() { _vals[ 0 ] = _vals[ 1 ] = _vals[ 2 ] = _vals[ 3 ] = 0; }
40  Dtk_bool IsNull() const { return( _vals[ 0 ] || _vals[ 1 ] || _vals[ 2 ] || _vals[ 3 ] ) ? DTK_FALSE : DTK_TRUE; }
41  friend inline int operator < ( const Dtk_UUID &s1, const Dtk_UUID &s2 ) { return ( s1.CompareTo( s2 ) < 0 ) ? 1 : 0; }
42  bool operator ==( const Dtk_UUID& s1 ) const { return ( _vals[ 0 ] == s1._vals[ 0 ] ) && ( _vals[ 1 ] == s1._vals[ 1 ] ) && ( _vals[ 2 ] == s1._vals[ 2 ] ) && ( _vals[ 3 ] == s1._vals[ 3 ] ); }
43  friend std::ostream& operator <<( std::ostream &inOutStream, const Dtk_UUID &inVal );
44 };
46 {
47 private:
48  static long _Seed;
49  static long InitSrand();
50 public:
51  static long GetRandomNumber();
52 };
53 
54 #endif
Dtk_UUID::clear
void clear()
Definition: dtk_uuid.hpp:39
Dtk_UUID::Dtk_UUID
Dtk_UUID(const Dtk_Int32 inVal1, const Dtk_Int32 inVal2, const Dtk_Int32 inVal3, const Dtk_Int32 inVal4)
Definition: dtk_uuid.hpp:27
DTK_TRUE
#define DTK_TRUE
Definition: define.h:727
Dtk_UUID::Dtk_UUID
Dtk_UUID(const Dtk_Int32(&inVals)[4])
Definition: dtk_uuid.hpp:20
Dtk_Size_t
size_t Dtk_Size_t
Definition: define.h:712
Dtk_UUID::operator<
friend int operator<(const Dtk_UUID &s1, const Dtk_UUID &s2)
Definition: dtk_uuid.hpp:41
Dtk_UUID
Definition: dtk_uuid.hpp:8
DTK_FALSE
#define DTK_FALSE
Definition: define.h:728
Dtk_bool
char Dtk_bool
Definition: define.h:725
Dtk_UUID::IsNull
Dtk_bool IsNull() const
Definition: dtk_uuid.hpp:40
Dtk_Int32
int32_t Dtk_Int32
Definition: define.h:687
Dtk_UUID::Dtk_UUID
Dtk_UUID(const Dtk_UUID &s)
Definition: dtk_uuid.hpp:13
Dtk_UUID::GenerateRandomUUID
static void GenerateRandomUUID(Dtk_UUID &outRes)
Dtk_UUID::operator[]
Dtk_Int32 & operator[](Dtk_Size_t pos)
Definition: dtk_uuid.hpp:34
define.h
Dtk_Random
Definition: dtk_uuid.hpp:46
Dtk_UUID::CompareTo
int CompareTo(const Dtk_UUID &inUuid) const
Dtk_UUID::Dtk_UUID
Dtk_UUID()
Definition: dtk_uuid.hpp:12
Dtk_UUID::Increment
void Increment()
Dtk_Random::GetRandomNumber
static long GetRandomNumber()
Dtk_UUID::operator<<
friend std::ostream & operator<<(std::ostream &inOutStream, const Dtk_UUID &inVal)
Dtk_UUID::operator==
bool operator==(const Dtk_UUID &s1) const
Definition: dtk_uuid.hpp:42