Редакция 255 | Авторство | Сравнить с предыдущей | Последнее изменение | Открыть журнал | Скачать | RSS
#ifndef WMITHREAD_H
#define WMITHREAD_H
#include <QThread>
#include <QProcess>
#include <QMutex>
#include <QDebug>
#include <QEventLoop>
#include "woker.h"
class WmiThread : public QThread
{
Q_OBJECT
public:
explicit WmiThread(QObject *parent = 0);
void run();
void stop();
void setHost(QString new_host){host = new_host;}
void setUser(QString new_user){user_name = new_user;}
void setPassword(QString new_password){password = new_password;}
QByteArray buffer(){return p_buffer;}
void clearBuffer(){p_buffer.clear();}
bool isError(){return error;}
bool isStopped(){
mutex.lock();
return stopped;
mutex.unlock();
}
void setWmiString(QString new_wmi_string){wmi_string = new_wmi_string;}
QString resultString(){
QTextCodec *codec = QTextCodec::codecForName("cp1251");
QTextCodec *codecUTF = QTextCodec::codecForName("utf8");
QTextCodec::setCodecForTr(codecUTF);
QString tmp_str;
tmp_str = tr(p_buffer);
QTextCodec::setCodecForTr(codec);
// return QString(tr(p_buffer));
return tmp_str;
}
volatile bool stopped;
private:
volatile bool error;
QProcess process;
QString host;
QString user_name;
QString password;
QMutex mutex;
QByteArray p_buffer; //çäåñü áóäåì õðàíèòü äàííûå, ñ÷èòàííûå èç ñòàíäàðòíîãî ïîòîêà äëÿ ÷òåíèÿ (ïðîöåññà)
QString wmi_string; //çäåñü áóäåì õðàíèòü wmi-çàïðîñ
QEventLoop *loop;
signals:
void stop_now();
public slots:
void readStandartProcessOutput();
void readStandartProcessError();
// void wokerIsStopped();
private slots:
};
#endif // WMITHREAD_H