You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdelibs/kdesu/stub.h

140 lines
3.3 KiB

/* 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__