00001 #include "Version.h"
00002 #include <string>
00003 #include <sstream>
00004 #include <cstring>
00005 #include <cmath>
00006
00007 using namespace std;
00008
00009 namespace Sct {
00010
00011
00012 #define TAG "$Name: SctRodDaq_4_3_RC2 $"
00013
00014
00015 const char* BuildSystem = "Linux pcei 2.4.21-32.0.1.EL.cern #1 Thu May 26 12:45:05 CEST 2005 i686 i686 i386 GNU/Linux";
00016 const char* BuildHost = "pcei.hep.phy.cam.ac.uk";
00017 const char* BuildDate = "18:36:13 16 Dec 2005";
00018 const char* CmtConfig = "i686-slc3-gcc323-opt ";
00019 const char* TdaqVersion = "tdaq-01-04-01 ";
00020 const char* RootVersion = "4.03/04";
00021 const char* GccVersion = "3.2.3";
00022 const char* RodDaqVersion = "SctRodDaq_4_3_RC2";
00023
00024 const char* getVersionString() {
00025 static char* str = 0;
00026 if (!str) {
00027 if (strlen(TAG) > 10) {
00028 str = new char[strlen(TAG)-6];
00029 strncpy(str, &TAG[7], strlen(TAG)-9);
00030 str[strlen(TAG)-9] = '\0';
00031 } else {
00032 str = new char[20];
00033 strcpy(str, "SctRodDaq_0_00_Exp");
00034 }
00035 }
00036 return str;
00037 }
00038
00039 const char* getVersionModifier() {
00040 return &strrchr(VersionString, '_')[1];
00041 }
00042
00043 unsigned int getMajorVersion() {
00044 return (unsigned int)floor(Version);
00045 }
00046
00047 unsigned int getMinorVersion() {
00048 return (unsigned int) floor( (Version - MajorVersion) * 101);
00049 }
00050
00051 double getVersion() {
00052 char str [strlen(VersionString) - 10];
00053 strcpy(str, &VersionString[10]);
00054 str[1] = '.';
00055 return atof(str);
00056 }
00057
00058 const char* VersionString = getVersionString();
00059 const char* VersionModifier = getVersionModifier();
00060 const double Version = getVersion();
00061 const unsigned int MajorVersion = getMajorVersion();
00062 const unsigned int MinorVersion = getMinorVersion();
00063
00064 }