/* ====================================================================
* Copyright (c) 2003-2006, Martin Hauner
* http://subcommander.tigris.org
*
* Subcommander is licensed as described in the file doc/COPYING, which
* you should have received as part of this distribution.
* ====================================================================
*/
// sc
#include "uuid.h"
#include "apr.h"
#include "AprException.h"
// sys
#include <string.h>
Uuid Uuid::createEmpty()
{
return Uuid(false);
}
Uuid Uuid::createUuid()
{
return Uuid(true);
}
Uuid::Uuid( const Uuid& src )
{
this->operator =(src);
}
void Uuid::operator=( const Uuid& src )
{
_uuid = src._uuid;
}
Uuid::Uuid( bool init )
{
if( init )
{
apr_uuid_get( &_uuid );
}
}
Uuid::Uuid( const char* uuid )
{
apr_status_t status = apr_uuid_parse( &_uuid, uuid );
if( status != APR_SUCCESS )
{
sc::String val(uuid);
throw apr::Exception( status, val );
}
}
bool Uuid::operator==( const Uuid& src ) const
{
return 0 == ::memcmp( _uuid.data, src._uuid.data, 16 );
}
const char* Uuid::toString() const
{
char* uuid = new char[APR_UUID_FORMATTED_LENGTH+1];
apr_uuid_format( uuid, &_uuid );
return uuid;
}
void Uuid::release( const char** uuid )
{
delete [] *uuid;
*uuid = 0;
}
syntax highlighted by Code2HTML, v. 0.9.1