Go to the documentation of this file.00001 #ifndef QPID_TYPES_UUID_H
00002 #define QPID_TYPES_UUID_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "qpid/types/ImportExport.h"
00026 #include <iosfwd>
00027 #include <string>
00028
00029 namespace qpid {
00030 namespace types {
00031
00032 class QPID_TYPES_CLASS_EXTERN Uuid
00033 {
00034 public:
00035 static const size_t SIZE;
00040 QPID_TYPES_EXTERN Uuid(bool unique=false);
00041 QPID_TYPES_EXTERN Uuid(const Uuid&);
00042 QPID_TYPES_EXTERN Uuid& operator=(const Uuid&);
00044 QPID_TYPES_EXTERN Uuid(const unsigned char* data16);
00045
00047 QPID_TYPES_EXTERN void generate();
00048
00050 QPID_TYPES_EXTERN void clear();
00051
00053 QPID_TYPES_EXTERN bool isNull() const;
00054 QPID_TYPES_EXTERN operator bool() const;
00055 QPID_TYPES_EXTERN bool operator!() const;
00056
00058 QPID_TYPES_EXTERN std::string str() const;
00059
00060 QPID_TYPES_EXTERN size_t size() const;
00061 QPID_TYPES_EXTERN const unsigned char* data() const;
00062
00063 friend QPID_TYPES_EXTERN bool operator==(const Uuid&, const Uuid&);
00064 friend QPID_TYPES_EXTERN bool operator!=(const Uuid&, const Uuid&);
00065 friend QPID_TYPES_EXTERN bool operator<(const Uuid&, const Uuid&);
00066 friend QPID_TYPES_EXTERN bool operator>(const Uuid&, const Uuid&);
00067 friend QPID_TYPES_EXTERN bool operator<=(const Uuid&, const Uuid&);
00068 friend QPID_TYPES_EXTERN bool operator>=(const Uuid&, const Uuid&);
00069 friend QPID_TYPES_EXTERN std::ostream& operator<<(std::ostream&, Uuid);
00070 friend QPID_TYPES_EXTERN std::istream& operator>>(std::istream&, Uuid&);
00071
00072 private:
00073 unsigned char bytes[16];
00074 };
00075
00077 QPID_TYPES_EXTERN bool operator==(const Uuid&, const Uuid&);
00079 QPID_TYPES_EXTERN bool operator!=(const Uuid&, const Uuid&);
00080
00081 QPID_TYPES_EXTERN bool operator<(const Uuid&, const Uuid&);
00082 QPID_TYPES_EXTERN bool operator>(const Uuid&, const Uuid&);
00083 QPID_TYPES_EXTERN bool operator<=(const Uuid&, const Uuid&);
00084 QPID_TYPES_EXTERN bool operator>=(const Uuid&, const Uuid&);
00085
00087 QPID_TYPES_EXTERN std::ostream& operator<<(std::ostream&, Uuid);
00088
00090 QPID_TYPES_EXTERN std::istream& operator>>(std::istream&, Uuid&);
00091
00092 }}
00093
00094 #endif