summaryrefslogtreecommitdiffstats
path: root/kdesu/stub.h
diff options
context:
space:
mode:
Diffstat (limited to 'kdesu/stub.h')
-rw-r--r--kdesu/stub.h139
1 files changed, 139 insertions, 0 deletions
diff --git a/kdesu/stub.h b/kdesu/stub.h
new file mode 100644
index 000000000..921db0e1c
--- /dev/null
+++ b/kdesu/stub.h
@@ -0,0 +1,139 @@
+/* vi: ts=8 sts=4 sw=4
+ *
+ * $Id$
+ *
+ * This file is part of the KDE project, module kdesu.
+ * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org>
+ *
+ * This is free software; you can use this library under the GNU Library
+ * General Public License, version 2. See the file "COPYING.LIB" for the
+ * exact licensing terms.
+ */
+
+#ifndef __Stub_h_Included__
+#define __Stub_h_Included__
+
+#include <qcstring.h>
+#include <qvaluelist.h>
+
+#include "process.h"
+#include "kcookie.h"
+
+#include <kdelibs_export.h>
+
+typedef QValueList<QCString> QCStringList;
+
+/**
+ * Chat with kdesu_stub.
+ *
+ * StubProcess extends PtyProcess with functionality to chat with kdesu_stub.
+ */
+
+class KDESU_EXPORT StubProcess: public PtyProcess
+{
+public:
+ StubProcess();
+ ~StubProcess();
+
+ /**
+ * Specify dcop transport
+ */
+ void setDcopTransport(const QCString &dcopTransport)
+ { m_pCookie->setDcopTransport(dcopTransport); }
+
+ /**
+ * Set the command.
+ */
+ void setCommand(const QCString &command) { m_Command = command; }
+
+ /**
+ * Set the target user.
+ */
+ void setUser(const QCString &user) { m_User = user; }
+
+ /**
+ * Set to "X only mode": Sycoca is not built and kdeinit is not launched.
+ */
+ void setXOnly(bool xonly) { m_bXOnly = xonly; }
+
+ /**
+ * Enable DCOP forwarding.
+ */
+ void setDCOPForwarding(bool dcopForwarding) { m_bDCOPForwarding = dcopForwarding; }
+
+ /**
+ * Set the priority of the process. The priority value must be between 0
+ * and 100, 0 being the lowest priority. This value is mapped to the
+ * scheduler and system dependant priority range of the OS.
+ */
+ void setPriority(int prio);
+
+ /**
+ * Different schedulers. SchedNormal is the normal Unix timesharing
+ * scheduler, while SchedRealtime is a POSIX.1b realtime scheduler.
+ */
+ enum Scheduler { SchedNormal, SchedRealtime };
+
+ /**
+ * Set the scheduler type.
+ */
+ void setScheduler(int sched) { m_Scheduler = sched; }
+
+protected:
+
+ /**
+ * Exchange all parameters with kdesu_stub.
+ */
+ int ConverseStub(int check);
+
+ /**
+ * Notify the taskbar that a new application has been started.
+ * @obsolete
+ */
+ // KDE4 remove
+ void notifyTaskbar(const QString &suffix);
+
+ /**
+ * This virtual function can be overloaded when special behavior is
+ * desired. By default, it returns the value returned by KCookie.
+ */
+ virtual QCString display() { return m_pCookie->display(); }
+#ifdef Q_WS_X11
+ /**
+ * See display.
+ */
+ virtual QCString displayAuth() { return m_pCookie->displayAuth(); }
+#endif
+ /**
+ * See display.
+ */
+ virtual QCString dcopServer() { return m_pCookie->dcopServer(); }
+ /**
+ * See display.
+ */
+ virtual QCString dcopAuth() { return m_pCookie->dcopAuth(); }
+ /**
+ * See display.
+ */
+ virtual QCString iceAuth() { return m_pCookie->iceAuth(); }
+
+ bool m_bXOnly;
+ bool m_bDCOPForwarding;
+ int m_Priority;
+ int m_Scheduler;
+ QCString m_dcopTransport;
+ QCString m_Command;
+ QCString m_User;
+ KCookie *m_pCookie;
+
+private:
+ QCString commaSeparatedList(QCStringList);
+
+protected:
+ virtual void virtual_hook( int id, void* data );
+private:
+ class StubProcessPrivate;
+ StubProcessPrivate *d;
+};
+
+#endif // __Stub_h_Included__