////////////////////////////////////////////////////////////
//
// Declaration of a class
// DceUuid
//
// Copyright 2001
//
////////////////////////////////////////////////////////////
#ifndef __DCEUUID_H__
#define __DCEUUID_H__
#include <dce/uuid.h>
#include "DceString.h"
// DceUuid
class DceUuid
{
public:
int status;
DceUuid(); // sets "zero" uuid - for arrays
DceUuid(const uuid_t& z):status(0),uuid(z){}
DceUuid(const unsigned char* z){set(z);}
DceUuid(const char* z){set(z);}
DceUuid(const DceUuid& z):status(z.status),uuid(z.uuid){}
~DceUuid(){}
DceUuid& operator=(const DceUuid& z)
{ status=z.status; uuid=z.uuid; return *this;}
int set(const uuid_t& z);
int set(const unsigned char*);
int set(const char*);
int set_random();
unsigned short hash_value()const;
bool operator==(const DceUuid& z) const;
bool operator!=(const DceUuid& z) const
{ return !operator==(z);}
bool is_nil()const;
int get_uuid_t(uuid_t& z) const
{ z=uuid; return 0;}
int get_string(DceString& )const;
private:
uuid_t uuid;
};
#endif