1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
// WRID.hh --- Definition of Workrave link ID
//
// Copyright (C) 2007, 2008, 2009 Rob Caelers <robc@krandor.nl>
// All rights reserved.
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// $Id$
//
#ifndef WR_WRID_HH
#define WR_WRID_HH
#include "debug.hh"
#include <string>
#include <glib.h>
namespace workrave
{
class WRID
{
private:
typedef unsigned char uuid_type[16];
public:
WRID();
WRID(const WRID &rhs);
WRID(const std::string &str);
WRID &operator=(const WRID &lid);
bool operator==(const WRID &lid) const;
bool operator!=(const WRID &lid) const;
bool operator<(const WRID &lid) const;
std::string str() const;
guint8 *raw() const;
bool set(const std::string &str);
const static size_t RAW_LENGTH = sizeof(uuid_type);
const static size_t STR_LENGTH = sizeof(uuid_type) * 2;
private:
void create();
void get_random_bytes(unsigned char *buf, size_t length);
//! Unique ID
uuid_type id;
};
}; // namespace workrave
#endif // WRID_HH
|