| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #include "heartbeat.h"
- #include "wssso.h"
- #include "sncdatabase.h"
- #include "respssoheartbeat.h"
- #include <QtGui/QApplication>
- HeartBeat::HeartBeat(QString userHash)
- {
- this->userHash = userHash;
- this->stop = false;
- QRegExp reg("\\d+");
- QMap<QString,QString> map = SNCDataBase::getSrvParam("sso");
- if(reg.exactMatch(map.value("heartBeatTime")))
- {
- cycle = map.value("heartBeatTime").toInt();
- }
- else
- {
- cycle = 120;
- }
- }
- void HeartBeat::setUserHash(QString userHash)
- {
- this->userHash = userHash;
- }
- void HeartBeat::abort()
- {
- this->stop = true;
- }
- HeartBeat::~HeartBeat()
- {
- qDebug()<<QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss")\
- <<"HeartBeat Destroyed.";
- }
- void HeartBeat::run()
- {
- this->stop = false;
- while(!stop)
- {
- WSSSO client;
- QString json = client.heartBeat(this->userHash,"","","");
- if(!json.isEmpty()){
- RespSSOHeartBeat response(json);
- int rtCode = response.getRtnCode();
- if(rtCode == 0)
- {
- break;
- }
- else if(rtCode == -1)
- {
- emit multiLogin();
- break;
- }
- }
- //msleep(1000*60*5);
- QTime dieTime = QTime::currentTime().addMSecs(1000*cycle);
- QTime c;
- c.start();
- while( QTime::currentTime() < dieTime )
- {
- QCoreApplication::processEvents(QEventLoop::AllEvents, 100);
- msleep(500);
- if(stop)
- break;
- }
- //qDebug()<<c.elapsed();
- }
- }
|