利用LoadInfo存储负荷信息

Signed-off-by: dmy@lab <dmy@lab.lab>
This commit is contained in:
dmy@lab
2015-01-15 21:56:30 +08:00
parent 214c17dd10
commit 230aef6995
6 changed files with 120 additions and 13 deletions

View File

@@ -1,6 +1,6 @@
#include "loadmapping.h"
#include <iostream>
QHash<QString,QVector<double> > *LoadMapping::ht=NULL;
LoadMapping::LoadMapping()
{
@@ -16,16 +16,62 @@ LoadMapping::~LoadMapping()
}
bool LoadMapping::load(const QString &dir)
bool LoadMapping::load(const QString &loadDir,const QString &matchdDir)
{
if(LoadMapping::ht->keys().length()>0)
{
return true;//只执行一次
}
if(!QFileInfo::exists(dir))
if(!QFileInfo::exists(loadDir)|!QFileInfo::exists(matchdDir))
{
return false;
}
if(!this->readMatch(matchdDir))
{
return false;
}
if(!this->readLoads(loadDir))
{
return false;
}
return true;
}
bool LoadMapping::readLoads(const QString &dir)
{
RecurseDir recurseDir;
recurseDir.setDir((dir));
QStringList filePathList=recurseDir.getFiles();
foreach(QString filePath,filePathList)
{
QFileInfo fileInfo(filePath);
if(!fileInfo.exists())
{
return false;
}
QString suffix;
suffix=fileInfo.suffix();
if(suffix.toLower()!="csv")
{
continue;
}
QString fileName=fileInfo.baseName();
if(!this->loadsToLoadInfo.contains(fileName))
{
std::cout<<filePath.toLocal8Bit().data()<<" no match."<<std::endl;
continue;
}
QSharedPointer<LoadInfo> loadInfo=this->loadsToLoadInfo[fileName];
loadInfo->setLoadPath(filePath);
}
return true;
}
bool LoadMapping::readMatch(const QString& dir)
{
RecurseDir recurseDir;
recurseDir.setDir((dir));
QStringList filePathList=recurseDir.getFiles();
@@ -36,14 +82,12 @@ bool LoadMapping::load(const QString &dir)
{
return false;
}
QString fileName;
QString suffix;
suffix=fileInfo.suffix();
if(suffix.toLower()!="csv")
{
continue;
}
fileName=fileInfo.baseName();
QFile file(filePath);
QString line;
QStringList sep;
@@ -59,11 +103,16 @@ bool LoadMapping::load(const QString &dir)
continue;
}
QString SFDid;
QRegExp regExp("\\(.*\\)");
SFDid=sep.at(0);
QVector<QString> loads;
SFDid=SFDid.replace(regExp,"");
QVector<QSharedPointer<LoadInfo> > loads;
for(int i=1;i<sep.length();i++)
{
loads.push_back(sep.at(i));
QSharedPointer<LoadInfo> t(new LoadInfo);
t->setLoadName(sep.at(i));
loads.push_back(t);
this->loadsToLoadInfo[sep.at(i)]=t;
}
this->loads[SFDid]=loads;
@@ -73,7 +122,6 @@ bool LoadMapping::load(const QString &dir)
}
return true;
}