PTLib  Version 2.14.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
guid.h
Go to the documentation of this file.
1 /*
2  * guid.h
3  *
4  * Globally Unique Identifier
5  *
6  * Open H323 Library
7  *
8  * Copyright (c) 1998-2001 Equivalence Pty. Ltd.
9  *
10  * The contents of this file are subject to the Mozilla Public License
11  * Version 1.0 (the "License"); you may not use this file except in
12  * compliance with the License. You may obtain a copy of the License at
13  * http://www.mozilla.org/MPL/
14  *
15  * Software distributed under the License is distributed on an "AS IS"
16  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
17  * the License for the specific language governing rights and limitations
18  * under the License.
19  *
20  * The Original Code is Open H323 Library.
21  *
22  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
23  *
24  * Contributor(s): ______________________________________.
25  *
26  * $Revision: 32492 $
27  * $Author: rjongbloed $
28  * $Date: 2014-08-12 10:45:40 +1000 (Tue, 12 Aug 2014) $
29  */
30 
31 #ifndef PTLIB_GUID_H
32 #define PTLIB_GUID_H
33 
34 #ifdef P_USE_PRAGMA
35 #pragma interface
36 #endif
37 
38 class PASN_OctetString;
39 
40 
42 
49 {
50  PCLASSINFO(PGloballyUniqueID, PBYTEArray);
51 
52  public:
53  enum {
55  Size = 16
56  };
57 
65 
72  const char * cstr
73  );
77  const PString & str
78  );
84  const void * data,
85  PINDEX size
86  );
87 #if P_ASN
88 
91  const PASN_OctetString & ostr
92  );
93 #endif
94 #ifdef GUID_DEFINED
96  const GUID & guid
97  );
98 #endif
99 
100 
107  virtual void PrintOn(
108  ostream & strm
109  ) const;
110 
115  virtual void ReadFrom(
116  istream & strm
117  );
118 
123  virtual PObject * Clone() const;
124 
129  virtual PINDEX HashFunction() const;
131 
136  PString AsString() const;
137 
140  PBoolean IsNULL() const;
141 
142  PBoolean operator!() const { return !IsNULL(); }
144 
145  private:
146  virtual PBoolean SetSize(PINDEX) { return true; }
147 };
148 
149 
150 #endif // PTLIB_GUID_H
151 
152 
153 // End Of File ///////////////////////////////////////////////////////////////