00001
00020 #ifndef COIL_UUID_H
00021 #define COIL_UUID_H
00022
00023 #include <coil/config_coil.h>
00024 #ifdef COIL_OS_FREEBSD
00025 #include <uuid.h>
00026
00027 namespace coil
00028 {
00029 class UUID
00030 {
00031 public:
00032 UUID();
00033 UUID(const uuid_t& uuid);
00034 ~UUID();
00035 const char* to_string();
00036 private:
00037 uuid_t m_uuid;
00038 char* m_uuidstr;
00039 };
00040
00041
00042 class UUID_Generator
00043 {
00044 public:
00045 UUID_Generator();
00046 ~UUID_Generator();
00047 void init();
00048 coil::UUID* generateUUID(int n, int h);
00049 };
00050 };
00051 #endif
00052 #if defined(COIL_OS_LINUX) || defined(COIL_OS_DARWIN) || defined(COIL_OS_CYGWIN)
00053 #include <uuid/uuid.h>
00054 namespace coil
00055 {
00056 class UUID
00057 {
00058 uuid_t _uuid;
00059 char buf[37];
00060 public:
00061 UUID();
00062 UUID(uuid_t*);
00063 const char* to_string();
00064 };
00065
00066 class UUID_Generator
00067 {
00068 public:
00069 UUID_Generator();
00070
00071 void init();
00072 UUID* generateUUID(int n, int h);
00073 };
00074 };
00075 #endif
00076
00077 #endif // COIL_UUID_H