KVIrc 5.2.4
Developer APIs
KviKvsProcessManager.h
Go to the documentation of this file.
1#ifndef _KVI_KVS_PROCESSMANAGER_H_
2#define _KVI_KVS_PROCESSMANAGER_H_
3//=============================================================================
4//
5// File : KviKvsProcessManager.h
6// Creation date : Wed 07 Apr 2004 03:03:52 by Szymon Stefanek
7//
8// This file is part of the KVIrc IRC client distribution
9// Copyright (C) 2004-2010 Szymon Stefanek <pragma at kvirc dot net>
10//
11// This program is FREE software. You can redistribute it and/or
12// modify it under the terms of the GNU General Public License
13// as published by the Free Software Foundation; either version 2
14// of the License, or (at your option) any later version.
15//
16// This program is distributed in the HOPE that it will be USEFUL,
17// but WITHOUT ANY WARRANTY; without even the implied warranty of
18// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19// See the GNU General Public License for more details.
20//
21// You should have received a copy of the GNU General Public License
22// along with this program. If not, write to the Free Software Foundation,
23// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
24//
25//=============================================================================
26
27#include "kvi_settings.h"
29#include "KviQString.h"
30#include "KviWindow.h"
31#include "KviKvsVariant.h"
33
34#include "KviPointerHashTable.h"
35
36#ifdef Unsorted
37#undef Unsorted
38#endif
39
40#include "QProcess"
41
42#include <QTimer>
43
44#define KVI_KVS_PROCESSDESCRIPTOR_TRIGGERSTDOUT 1
45#define KVI_KVS_PROCESSDESCRIPTOR_TRIGGERSTDERR 2
46#define KVI_KVS_PROCESSDESCRIPTOR_TRIGGERTERMINATED 4
47#define KVI_KVS_PROCESSDESCRIPTOR_OUTPUTBYBLOCKS 8
48#define KVI_KVS_PROCESSDESCRIPTOR_TRIGGERSTARTED 16
49#define KVI_KVS_PROCESSDESCRIPTOR_NOSHELL 32
50#define KVI_KVS_PROCESSDESCRIPTOR_KILLIFNOWINDOW 64
51
52class KviWindow;
53class KviKvsScript;
54class KviKvsVariant;
55
57{
58 QString szShell;
63 int iFlags;
64 int iMaxRunTime; // 0 for no timeout
65 int iPingTimeout; // 0 for no ping timeout
66};
67
68class KviKvsProcessManager;
69
71{
72 friend class KviKvsProcessManager;
73 Q_OBJECT
74public:
77
78protected:
87
88private:
89 QProcess * m_pProcess;
94 QTimer * m_pPingTimer;
97
98public:
99 bool start();
100private slots:
101 void maxRunTimeExpired();
102 void ping();
103 void readStdout();
104 void readStderr();
105 void processExited(int exitCode);
106 void processStarted();
107 void selfDelete();
108
109private:
110 bool trigger(CallbackEvent e, const QString & szData);
111 void triggerSelfDelete();
112};
113
114#endif
Handling of variant data type in KVS.
Pointer Hash Table.
Helper functions for the QString class.
Contains the KviWindow class.
Definition KviKvsAsyncOperation.h:35
Definition KviKvsRunTimeContext.h:44
Definition KviKvsProcessManager.h:71
KviKvsExtendedRunTimeData * m_pExtendedRunTimeData
Definition KviKvsProcessManager.h:90
QProcess * m_pProcess
Definition KviKvsProcessManager.h:89
QString m_szStderrBuffer
Definition KviKvsProcessManager.h:92
QTimer * m_pRunTimeTimer
Definition KviKvsProcessManager.h:95
KviKvsProcessDescriptorData * m_pData
Definition KviKvsProcessManager.h:93
bool m_bDeletePending
Definition KviKvsProcessManager.h:96
CallbackEvent
Definition KviKvsProcessManager.h:80
@ EventTerminated
Definition KviKvsProcessManager.h:82
@ EventStderr
Definition KviKvsProcessManager.h:84
@ EventStdout
Definition KviKvsProcessManager.h:83
@ EventStarted
Definition KviKvsProcessManager.h:81
QTimer * m_pPingTimer
Definition KviKvsProcessManager.h:94
QString m_szStdoutBuffer
Definition KviKvsProcessManager.h:91
The KVIrc Script class.
Definition KviKvsScript.h:60
This class defines a new data type which contains variant data.
Definition KviKvsVariant.h:352
Base class for all windows in KVIrc.
Definition KviWindow.h:75
#define d
Definition detector.cpp:69
#define e
Definition detector.cpp:70
This file contains compile time settings.
#define KVIRC_API
Definition kvi_settings.h:127
Definition KviKvsProcessManager.h:57
KviKvsScript * pCallback
Definition KviKvsProcessManager.h:60
KviWindow * pWnd
Definition KviKvsProcessManager.h:62
KviKvsVariant * pMagic
Definition KviKvsProcessManager.h:61
int iMaxRunTime
Definition KviKvsProcessManager.h:64
QString szCommandline
Definition KviKvsProcessManager.h:59
QString szShell
Definition KviKvsProcessManager.h:58
int iPingTimeout
Definition KviKvsProcessManager.h:65
int iFlags
Definition KviKvsProcessManager.h:63