OpenLexocad  28.0
GUID.h
Go to the documentation of this file.
1 #pragma once
2 #error DEPRECATED GUID.h
3 #include <Base/String.h>
4 
5 class QUuid;
6 
7 namespace Base
8 {
10 // //
11 // --------------------- BEGIN API --------------------- //
12 // //
13 // ATTENTION: DO NOT CHANGE ANY SIGNATURES IN THE API ! //
14 // //
16 
17 class LX_BASE_EXPORT GUID_Policy
18 {
19 public:
22  enum Policy
23  {
24  COPY, // A copy of the object is created with a new GUID
25  REPLACE, // The object with this GUID is replaced
26  REJECT // No replacement and no copying is done. The operation is rejected.
27  };
28 
29  GUID_Policy() { on_GUID_conflict = GUID_Policy::REJECT; }
30  GUID_Policy(Policy aPolicy) : on_GUID_conflict(aPolicy) {}
31 
32 
33  bool saveSettingsForThisSession = false;
35 };
36 
37 template <typename T>
39 {
40 public:
41  GUID_Policy_scoped(T* aDoc, const GUID_Policy& aPolicy, const Base::String& aSuffix = L"") : doc(aDoc), scoped_policy(aPolicy), suffix(aSuffix)
42  {
43  if (suffix == L"")
44  {
45  old_policy = doc->getGuidPolicy();
46  doc->setGuidPolicy(scoped_policy);
47  }
48  else
49  {
50  bool ok = doc->getGuidPolicy(suffix, old_policy);
51  if (ok)
52  doc->setGuidPolicy(suffix, scoped_policy);
53  }
54  }
56  {
57  // Setting old policy
58  if (suffix == L"")
59  doc->setGuidPolicy(old_policy);
60  else
61  doc->setGuidPolicy(suffix, old_policy);
62  }
63 
64  T* doc;
68 };
69 
70 class LX_BASE_EXPORT GUID
71 {
72 public:
73  GUID()
74  {
75  data1 = 0;
76  data2 = 0;
77  data3 = 0;
78  for (int i = 0; i < 8; i++)
79  data4[i] = 0;
80  }
81 
83  GUID(const Base::String& base64);
84 
86  GUID(const char* aGUID);
87 
88  bool isNull() const
89  {
90  return (data1 == 0 && data2 == 0 && data3 == 0 && data4[0] == 0 && data4[1] == 0 && data4[2] == 0 && data4[3] == 0 && data4[4] == 0 &&
91  data4[5] == 0 && data4[6] == 0 && data4[7] == 0);
92  }
93 
95  static GUID createGUID();
97  static GUID fromQUuid(const QUuid& uuid);
99  static void toQUuid(const GUID& in, QUuid& uuid);
101  void toQUuid(QUuid& uuid) const;
102 
103 
106 
107  unsigned int data1;
108  unsigned short data2;
109  unsigned short data3;
110  unsigned char data4[8];
111 
112  bool operator==(const GUID& rhs) const
113  {
114  unsigned int i;
115  if (data1 != rhs.data1 || data2 != rhs.data2 || data3 != rhs.data3)
116  return false;
117 
118  for (i = 0; i < 8; i++)
119  if (data4[i] != rhs.data4[i])
120  return false;
121 
122  return true;
123  }
124 
125  bool operator!=(const GUID& rhs) const { return !(*this == rhs); }
126 
127  bool operator<(const GUID& rhs) const;
128  bool operator>(const GUID& rhs) const;
129 };
130 } // namespace Base
Base::GUID::GUID
GUID()
Definition: GUID.h:73
Base::GUID::data4
unsigned char data4[8]
Definition: GUID.h:110
Base::GUID_Policy_scoped::~GUID_Policy_scoped
~GUID_Policy_scoped()
Definition: GUID.h:55
Base::GUID::fromQUuid
static GUID fromQUuid(const QUuid &uuid)
Creates a CA::GUID from a QUuid.
Base::GUID_Policy_scoped
Definition: GUID.h:39
Base::GUID::data1
unsigned int data1
Definition: GUID.h:107
Base::GUID_Policy::REPLACE
@ REPLACE
Definition: GUID.h:25
Base::GUID::toQUuid
void toQUuid(QUuid &uuid) const
Returns a QUuid from this.
Base::GUID::GUID
GUID(const Base::String &base64)
Create GUID from Base64 String (aka IFC GUID)
Base::GUID_Policy::REJECT
@ REJECT
Definition: GUID.h:26
Base::GUID::operator==
bool operator==(const GUID &rhs) const
Definition: GUID.h:112
Base::GUID
Definition: GUID.h:71
Base::GUID::operator!=
bool operator!=(const GUID &rhs) const
Definition: GUID.h:125
Base::GUID::createGUID
static GUID createGUID()
Creates a new GUID.
Base::GUID_Policy_scoped::old_policy
GUID_Policy old_policy
Definition: GUID.h:66
Base::GUID_Policy::GUID_Policy
GUID_Policy()
Definition: GUID.h:29
Base::GUID::operator>
bool operator>(const GUID &rhs) const
Base::GUID_Policy::on_GUID_conflict
GUID_Policy::Policy on_GUID_conflict
Definition: GUID.h:34
Base::GUID::toQUuid
static void toQUuid(const GUID &in, QUuid &uuid)
Converts a CA::GUID into a QUuid.
Base::GUID::operator<
bool operator<(const GUID &rhs) const
Base::GUID_Policy_scoped::doc
T * doc
Definition: GUID.h:64
Base::GUID::data3
unsigned short data3
Definition: GUID.h:109
Base::GUID_Policy
Definition: GUID.h:18
Base::GUID_Policy_scoped::scoped_policy
GUID_Policy scoped_policy
Definition: GUID.h:65
String.h
Base::GUID_Policy::COPY
@ COPY
Definition: GUID.h:24
Base::GUID_Policy_scoped::GUID_Policy_scoped
GUID_Policy_scoped(T *aDoc, const GUID_Policy &aPolicy, const Base::String &aSuffix=L"")
Definition: GUID.h:41
Base::GUID_Policy::Policy
Policy
Definition: GUID.h:23
Base::String
A Utf-16 (windows) or ucs4 (unix) encoded string class.
Definition: String.h:18
Base::GUID::toString
Base::String toString() const
Base::GUID::toBase64
Base::String toBase64() const
Base::GUID::GUID
GUID(const char *aGUID)
Create GUID from const char*. Expected format is '{F40650C2-4ACE-4606-89B1-DF4200C40E23}'.
Base::GUID_Policy_scoped::suffix
Base::String suffix
Definition: GUID.h:67
Base::GUID::data2
unsigned short data2
Definition: GUID.h:108
Base::GUID::isNull
bool isNull() const
Definition: GUID.h:88
Base::GUID_Policy::GUID_Policy
GUID_Policy(Policy aPolicy)
Definition: GUID.h:30
Base
Definition: AbstractXMLReader.h:5