/* ====================================================================
* 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 "Revision.h"
#include "util/apr.h"
namespace svn
{
const char* RevisionStrings[] =
{
"unspecified",
"number",
"date",
"committed",
"previous",
"base",
"working",
"head"
};
RevisionKind Revision::getKind() const
{
return _kind;
}
bool Revision::isLocal() const
{
return _kind == Revision_Base
|| _kind == Revision_Working;
}
bool Revision::equals( const Revision* src ) const
{
return _kind == src->_kind;
}
const Revision* Revision::dup() const
{
return new Revision(*this);
}
sc::String Revision::toString() const
{
return sc::String(RevisionStrings[_kind]);
}
bool RevisionDate::equals( const Revision* src ) const
{
return _kind == src->getKind()
&& _date == dynamic_cast<const RevisionDate*>(src)->_date;
}
const Revision* RevisionDate::dup() const
{
return new RevisionDate(*this);
}
sc::String RevisionDate::toString() const
{
char tmp[APR_RFC822_DATE_LEN] = {};
apr_rfc822_date( tmp, _date );
return sc::String(tmp);
}
bool RevisionNumber::equals( const Revision* src ) const
{
return _kind == src->getKind()
&& _rev == dynamic_cast<const RevisionNumber*>(src)->_rev;
}
const Revision* RevisionNumber::dup() const
{
return new RevisionNumber(*this);
}
sc::String RevisionNumber::toString() const
{
// uuuhhhh...
apr_pool_t* pool = apr::createPool();
sc::String result( "r" );
result += sc::String( apr_ltoa(pool,_rev) );
apr::destroyPool(pool);
return result;
}
} // namespace
syntax highlighted by Code2HTML, v. 0.9.1