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 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
// $Id: version.C,v 1.14 2004/02/19 12:24:33 oliver Exp $
//
#include <BALL/COMMON/version.h>
#include <BALL/DATATYPE/string.h>
#include <BALL/DATATYPE/stringHashMap.h>
namespace BALL
{
const char* VersionInfo::getVersion()
{
return BALL_RELEASE_STRING " (" __DATE__", " __TIME__ ")";
}
int VersionInfo::getMinorRevision()
{
static String release(BALL_RELEASE_STRING);
String minor = release.getField(1, ".");
String tmp = minor;
tmp.trimRight(String::CHARACTER_CLASS__ASCII_NUMERIC);
if (tmp.size() > 0)
{
minor.trimRight(String::CHARACTER_CLASS__ASCII_NUMERIC);
}
minor.trimRight(String::CHARACTER_CLASS__ASCII_ALPHA);
return minor.toInt();
}
int VersionInfo::getMajorRevision()
{
static String release(BALL_RELEASE_STRING);
return release.getField(0, ". ").toInt();
}
VersionInfo::Type VersionInfo::getType()
{
StringHashMap<VersionInfo::Type> type_mapper;
type_mapper.insert(std::pair<String, VersionInfo::Type>("alpha", ALPHA));
type_mapper.insert(std::pair<String, VersionInfo::Type>("beta", BETA));
type_mapper.insert(std::pair<String, VersionInfo::Type>("nonpublic", NONPUBLIC));
type_mapper.insert(std::pair<String, VersionInfo::Type>("pre", PRERELEASE));
type_mapper.insert(std::pair<String, VersionInfo::Type>("patch", PATCHLVL));
static String release(BALL_RELEASE_STRING);
// check for the suffix of the release string
// a = alpha, b = beta, n = nonpublic, no letter = stable
if (release.size() == 0)
{
return UNKNOWN;
}
String minor = release.getField(1, ".");
String tmp = minor;
tmp.trimLeft(String::CHARACTER_CLASS__ASCII_NUMERIC);
if (tmp.size() == 0)
{
return STABLE;
}
String type = tmp.trimRight("0123456789.");
if (type_mapper.has(type))
{
return(type_mapper[type]);
}
else
{
return(UNKNOWN);
}
}
const char* VersionInfo::RELEASE_DATE_AND_TIME = "@(#)BALL kernel compiled on: " __DATE__ ", " __TIME__;
const char* VersionInfo::RELEASE_WHAT_STRING = "@(#)BALL kernel version: V." BALL_RELEASE_STRING;
}
|