dcrud  0.0.0
Distributed data and services
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends
GUID.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <util/types.h>
4 
5 #include <io/ByteBuffer.hpp>
6 
7 namespace dcrud {
8 
9  class Cache;
10 
11  class GUID {
12  public:
13 
14  static const unsigned int SIZE = 4 + 4;
15 
16  static GUID unserialize( io::ByteBuffer & buffer );
17 
18  GUID() :
19  _publisher( 0 ),
20  _instance ( 0 )
21  {}
22 
23  GUID( const GUID & right ) :
24  _publisher( right._publisher ),
25  _instance ( right._instance )
26  {}
27 
28  GUID & operator = ( const GUID & right ) {
29  _publisher = right._publisher;
30  _instance = right._instance;
31  return *this;
32  }
33 
34  bool operator < ( const GUID & right ) const {
35  return compareTo( right ) < 0;
36  }
37 
38  bool isShared() const {
39  return _instance != 0;
40  }
41 
42  int compareTo( const GUID & right ) const;
43 
44  void set( const GUID & id );
45 
46  void serialize( io::ByteBuffer & buffer ) const;
47 
48  std::string toString( void ) const;
49 
50  private:
51 
52  unsigned int _publisher;
53  unsigned int _instance;
54 
55  friend class Cache;
56  };
57 }
bool operator<(const GUID &right) const
Definition: GUID.hpp:34
void serialize(io::ByteBuffer &buffer) const
GUID & operator=(const GUID &right)
Definition: GUID.hpp:28
bool isShared() const
Definition: GUID.hpp:38
int compareTo(const GUID &right) const
friend class Cache
Definition: GUID.hpp:55
static const unsigned int SIZE
Definition: GUID.hpp:14
GUID(const GUID &right)
Definition: GUID.hpp:23
std::string toString(void) const
void set(const GUID &id)
static GUID unserialize(io::ByteBuffer &buffer)