00001 /* 00002 * This program is free software; you can redistribute it and/or modify 00003 * it under the terms of the GNU General Public License as published by 00004 * the Free Software Foundation; either version 3 of the License, or 00005 * (at your option) any later version. 00006 * 00007 * Written (W) 1999-2009 Soeren Sonnenburg 00008 * Copyright (C) 1999-2009 Fraunhofer Institute FIRST and Max Planck Society 00009 */ 00010 00011 #include <shogun/base/init.h> 00012 00013 #include <shogun/lib/common.h> 00014 #include <shogun/io/SGIO.h> 00015 #include <shogun/lib/versionstring.h> 00016 #include <shogun/lib/config.h> 00017 00018 #ifndef VERSION_H__ 00019 #define VERSION_H__ 00020 00021 namespace shogun 00022 { 00023 class IO; 00024 00031 class Version 00032 { 00033 public: 00035 Version(); 00037 virtual ~Version(); 00038 00040 static void print_version(); 00041 00043 static const char* get_version_extra(); 00044 00046 static const char* get_version_release(); 00047 00049 static int32_t get_version_revision(); 00050 00052 static int32_t get_version_year(); 00053 00055 static int32_t get_version_month(); 00056 00058 static int32_t get_version_day(); 00059 00061 static int32_t get_version_hour(); 00062 00064 static int32_t get_version_minute(); 00065 00067 static int32_t get_version_parameter(); 00068 00070 static int64_t get_version_in_minutes(); 00071 00075 int32_t ref(); 00076 00080 int32_t ref_count() const; 00081 00085 int32_t unref(); 00086 00087 protected: 00089 static const char version_release[128]; 00091 static const char version_extra[128]; 00092 00094 static const int32_t version_revision; 00096 static const int32_t version_year; 00098 static const int32_t version_month; 00100 static const int32_t version_day; 00102 static const int32_t version_hour; 00104 static const int32_t version_minute; 00106 static const int32_t version_parameter; 00107 00108 private: 00109 int32_t refcount; 00110 }; 00111 } 00112 #endif