2017-12-21 Fred Gleason <fredg@paravelsystems.com>

* Added log locking logic to the 'SaveLog' Web API call.
This commit is contained in:
Fred Gleason
2017-12-21 11:47:34 -05:00
parent 0224380581
commit 97a6045992
5 changed files with 106 additions and 44 deletions

View File

@@ -174,6 +174,26 @@ void RDLogLock::clearLock(const QString &guid)
}
bool RDLogLock::validateLock(const QString &log_name,const QString &guid)
{
QString sql;
RDSqlQuery *q;
bool ret=false;
QDateTime now=QDateTime::currentDateTime();
sql=QString("select NAME from LOGS where ")+
"(NAME=\""+RDEscapeString(log_name)+"\")&&"+
"(LOCK_GUID=\""+RDEscapeString(guid)+"\")&&"+
"(LOCK_DATETIME>\""+RDEscapeString(now.addSecs(-RD_LOG_LOCK_TIMEOUT/1000).
toString("yyyy-MM-dd hh:mm:ss"))+"\")";
q=new RDSqlQuery(sql);
ret=q->first();
delete q;
return ret;
}
QString RDLogLock::makeGuid(const QString &stationname)
{
return stationname+QDateTime::currentDateTime().

View File

@@ -43,6 +43,7 @@ class RDLogLock : public QObject
const QString &log_name,const QString &guid);
static void updateLock(const QString &log_name,const QString &guid);
static void clearLock(const QString &guid);
static bool validateLock(const QString &log_name,const QString &guid);
static QString makeGuid(const QString &stationname);
private slots: