storage.cpp
00001 #include "storage.h"
00002
00003 #include <QRegExp>
00004 #include <QStringList>
00005
00006 #include <QTextStream>
00007
00008 static QTextStream out(stdout);
00009
00010 namespace storage
00011 {
00012
00013 VVEStorage::VVEStorage()
00014 : last_error_string()
00015 , last_error(NO__ERROR)
00016 , file_version()
00017 , version_number(0)
00018 {
00019 }
00020
00021 void VVEStorage::clear()
00022 {
00023 references.clear();
00024 }
00025
00026 int versionNumber(const QString& file_version)
00027 {
00028 static QRegExp version_re("(\\d+)(?:\\.(\\d+)?)?(?:\\.(\\d+)?)?");
00029 if(version_re.indexIn(file_version) != -1)
00030 {
00031 QStringList captured = version_re.capturedTexts();
00032 QString major_str, minor_str, micro_str;
00033 int major = 0, minor = 0, micro = 0;
00034 major_str = captured[1];
00035 major = major_str.toInt();
00036 if(captured.size() > 2)
00037 {
00038 minor_str = captured[2];
00039 minor = minor_str.toInt();
00040 }
00041 if(captured.size() > 3)
00042 {
00043 micro_str = captured[3];
00044 micro = micro_str.toInt();
00045 }
00046 return ((major & 0xff) << 24) + ((minor & 0xff) << 16) + (micro & 0xffff);
00047 }
00048 return 0;
00049 }
00050
00051 };