Хранилища Subversion OpenInventory

Редакция

Редакция 243 | Редакция 249 | К новейшей редакции | Только различия | Не учитывать пробелы | Содержимое файла | Авторство | Последнее изменение | Открыть журнал | RSS

Редакция 243 Редакция 248
1
#ifndef WMITHREAD_H
1
#ifndef WMITHREAD_H
2
#define WMITHREAD_H
2
#define WMITHREAD_H
3
3
4
#include <QThread>
4
#include <QThread>
5
#include <QProcess>
5
#include <QProcess>
6
#include <QMutex>
6
#include <QMutex>
7
#include <QDebug>
7
#include <QDebug>
8
#include <QEventLoop>
8
#include <QEventLoop>
9
#include "woker.h"
9
#include "woker.h"
10
10
11
class WmiThread : public QThread
11
class WmiThread : public QThread
12
{
12
{
13
    Q_OBJECT
13
    Q_OBJECT
14
public:
14
public:
15
    explicit WmiThread(QObject *parent = 0);
15
    explicit WmiThread(QObject *parent = 0);
16
    void run();
16
    void run();
17
    void stop();
17
    void stop();
18
    void setHost(QString new_host){host = new_host;}
18
    void setHost(QString new_host){host = new_host;}
19
    void setUser(QString new_user){user_name = new_user;}
19
    void setUser(QString new_user){user_name = new_user;}
20
    void setPassword(QString new_password){password = new_password;}
20
    void setPassword(QString new_password){password = new_password;}
21
    QByteArray buffer(){return p_buffer;}
21
    QByteArray buffer(){return p_buffer;}
22
    void clearBuffer(){p_buffer.clear();}
22
    void clearBuffer(){p_buffer.clear();}
23
    bool isError(){return error;}
23
    bool isError(){return error;}
24
    bool isStopped(){
24
    bool isStopped(){
25
        mutex.lock();
25
        mutex.lock();
26
        return stopped;
26
        return stopped;
27
        mutex.unlock();
27
        mutex.unlock();
28
28
29
                        };
29
                        }
30
    void setWmiString(QString new_wmi_string){wmi_string = new_wmi_string;}
30
    void setWmiString(QString new_wmi_string){wmi_string = new_wmi_string;}
-
 
31
    QString resultString(){
-
 
32
                            QTextCodec *codec = QTextCodec::codecForName("cp1251");
-
 
33
                            QTextCodec *codecUTF = QTextCodec::codecForName("utf8");
-
 
34
                            QTextCodec::setCodecForTr(codecUTF);
-
 
35
                            return QString(tr(p_buffer));
-
 
36
                            QTextCodec::setCodecForTr(codec);
-
 
37
                            }
31
volatile bool stopped;
38
volatile bool stopped;
32
private:
39
private:
33
40
34
    volatile bool error;
41
    volatile bool error;
35
42
36
   QProcess process;
43
   QProcess process;
37
    QString host;
44
    QString host;
38
    QString user_name;
45
    QString user_name;
39
    QString password;
46
    QString password;
40
    QMutex mutex;
47
    QMutex mutex;
41
    QByteArray p_buffer; //çäåñü áóäåì õðàíèòü äàííûå, ñ÷èòàííûå èç ñòàíäàðòíîãî ïîòîêà äëÿ ÷òåíèÿ (ïðîöåññà)
48
    QByteArray p_buffer; //çäåñü áóäåì õðàíèòü äàííûå, ñ÷èòàííûå èç ñòàíäàðòíîãî ïîòîêà äëÿ ÷òåíèÿ (ïðîöåññà)
42
    QString wmi_string;  //çäåñü áóäåì õðàíèòü wmi-çàïðîñ
49
    QString wmi_string;  //çäåñü áóäåì õðàíèòü wmi-çàïðîñ
43
50
44
signals:
51
signals:
45
52
46
public slots:
53
public slots:
47
    void readStandartProcessOutput();
54
    void readStandartProcessOutput();
48
    void readStandartProcessError();
55
    void readStandartProcessError();
49
    void wokerIsStopped();
56
    void wokerIsStopped();
50
57
51
private slots:
58
private slots:
52
59
53
60
54
61
55
};
62
};
56
63
57
#endif // WMITHREAD_H
64
#endif // WMITHREAD_H
58
 
65