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 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Fri May 31 15:37:52 2013 for VVE by  doxygen 1.6.3