#include "Job.h"
#include "P4Process.h"
#include <qstringlist.h>
Perforce::Job::JobListCache Perforce::Job::_joblistCache;
const Perforce::JobList& Perforce::Job::getJobs()
{
_joblistCache.updateCacheIfNecessary();
return _joblistCache.getCache();
}
Perforce::Job::JobListCache::JobListCache()
{
}
void Perforce::Job::JobListCache::updateCache()
{
P4Process p4;
_cache = p4.getJobs();
}
Perforce::Job* Perforce::Job::createJob( const QString& p4 )
{
Job* j = new Job();
int end;
int start;
QString temp;
// name
start = 0;
end = p4.find( ' ', start );
temp = p4.mid( start, (end-start) );
// qDebug( "name=%s", temp.latin1() );
j->_name = temp;
// date
start = p4.find( "on", start ) + 3;
end = p4.find( ' ', start );
temp = p4.mid( start, (end-start) );
// qDebug( "Date: %s", temp.latin1() );
QStringList date = QStringList::split( "/", temp );
j->_reportDate = QDate( date[0].toInt(), date[1].toInt(), date[2].toInt() );
// reported by
start = p4.find( "by", start ) + 3;
end = p4.find( ' ', start );
temp = p4.mid( start, (end-start) );
j->_reportedBy = temp;
// status
start = p4.find( "*", start ) + 1;
end = p4.find( "*", start );
j->_status = p4.mid( start, (end-start) );
// description
start = p4.find( "'", end + 1 ) + 1;
end = p4.find( "'", start );
j->_description = p4.mid( start, (end-start) );
return j;
}