00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#ifndef _KWALLETD_H_
00023
#define _KWALLETD_H_
00024
00025
#include <kded/kdedmodule.h>
00026
#include <qintdict.h>
00027
#include <qstring.h>
00028
#include <qwidget.h>
00029
#include "kwalletbackend.h"
00030
00031
#include <time.h>
00032
#include <stdlib.h>
00033
00034
class KDirWatch;
00035
class KTimeout;
00036
00037
00038
class KWalletTransaction;
00039
00040
class KWalletD :
public KDEDModule {
00041 Q_OBJECT
00042 K_DCOP
00043
public:
00044 KWalletD(
const QCString &name);
00045
virtual ~KWalletD();
00046
00047 k_dcop:
00048
00049
virtual bool isEnabled() const;
00050
00051
00052 virtual
int open(const
QString& wallet, uint wId);
00053
00054
00055 virtual
int openPath(const
QString& path, uint wId);
00056
00057
00058
00059 virtual
void openAsynchronous(const
QString& wallet, const
QCString& returnObject, uint wId);
00060
00061
00062
00063
00064
00065 virtual
int close(const
QString& wallet,
bool force);
00066 virtual
int close(
int handle,
bool force);
00067
00068
00069 virtual ASYNC sync(
int handle);
00070
00071
00072 virtual
int deleteWallet(const
QString& wallet);
00073
00074
00075 virtual
bool isOpen(const
QString& wallet) const;
00076 virtual
bool isOpen(
int handle);
00077
00078
00079 virtual
QStringList users(const
QString& wallet) const;
00080
00081
00082 virtual
void changePassword(const
QString& wallet, uint wId);
00083
00084
00085 virtual
QStringList wallets() const;
00086
00087
00088 virtual
QStringList folderList(
int handle);
00089
00090
00091 virtual
bool hasFolder(
int handle, const
QString& folder);
00092
00093
00094 virtual
bool createFolder(
int handle, const
QString& folder);
00095
00096
00097 virtual
bool removeFolder(
int handle, const
QString& folder);
00098
00099
00100 virtual
QStringList entryList(
int handle, const
QString& folder);
00101
00102
00103
00104
00105 virtual
QByteArray readEntry(
int handle, const
QString& folder, const
QString& key);
00106 virtual
QByteArray readMap(
int handle, const
QString& folder, const
QString& key);
00107 virtual
QString readPassword(
int handle, const
QString& folder, const
QString& key);
00108 virtual
QMap<
QString,
QByteArray> readEntryList(
int handle, const QString& folder, const QString& key);
00109 virtual
QMap<QString,
QByteArray> readMapList(
int handle, const QString& folder, const QString& key);
00110 virtual
QMap<QString, QString> readPasswordList(
int handle, const QString& folder, const QString& key);
00111
00112
00113 virtual
int renameEntry(
int handle, const QString& folder, const QString& oldName, const QString& newName);
00114
00115
00116 virtual
int writeEntry(
int handle, const QString& folder, const QString& key, const
QByteArray& value,
int entryType);
00117 virtual
int writeEntry(
int handle, const QString& folder, const QString& key, const
QByteArray& value);
00118 virtual
int writeMap(
int handle, const QString& folder, const QString& key, const
QByteArray& value);
00119 virtual
int writePassword(
int handle, const QString& folder, const QString& key, const QString& value);
00120
00121
00122 virtual
bool hasEntry(
int handle, const QString& folder, const QString& key);
00123
00124
00125 virtual
int entryType(
int handle, const QString& folder, const QString& key);
00126
00127
00128 virtual
int removeEntry(
int handle, const QString& folder, const QString& key);
00129
00130
00131 virtual
bool disconnectApplication(const QString& wallet, const
QCString& application);
00132
00133 virtual
void reconfigure();
00134
00135
00136 virtual
bool folderDoesNotExist(const QString& wallet, const QString& folder);
00137 virtual
bool keyDoesNotExist(const QString& wallet, const QString& folder, const QString& key);
00138
00139 virtual
void closeAllWallets();
00140
00141 virtual QString networkWallet();
00142
00143 virtual QString localWallet();
00144
00145 private slots:
00146
void slotAppUnregistered(const
QCString& app);
00147
void emitWalletListDirty();
00148
void timedOut(
int);
00149
void notifyFailures();
00150
void processTransactions();
00151
00152 private:
00153
int internalOpen(const
QCString& appid, const QString& wallet,
bool isPath = false, WId w = 0);
00154
bool isAuthorizedApp(const
QCString& appid, const QString& wallet, WId w);
00155
00156 KWallet::Backend* getWallet(const
QCString& appid,
int handle);
00157
00158
int generateHandle();
00159
00160
void invalidateHandle(
int handle);
00161
00162
void doCloseSignals(
int,const QString&);
00163
void emitFolderUpdated(const QString&, const QString&);
00164
00165
int closeWallet(KWallet::Backend *w,
int handle,
bool force);
00166
00167
bool implicitAllow(const QString& wallet, const
QCString& app);
00168
bool implicitDeny(const QString& wallet, const
QCString& app);
00169
QCString friendlyDCOPPeerName();
00170
00171
void doTransactionChangePassword(const
QCString& appid, const QString& wallet, uint wId);
00172
int doTransactionOpen(const
QCString& appid, const QString& wallet, uint wId);
00173
00174
QIntDict<KWallet::Backend> _wallets;
00175
QMap<
QCString,
QValueList<
int> > _handles;
00176
QMap<QString,QCString> _passwords;
00177
KDirWatch *_dw;
00178
int _failed;
00179
00180
bool _leaveOpen, _closeIdle, _launchManager, _enabled;
00181
bool _openPrompt, _firstUse, _showingFailureNotify;
00182
int _idleTime;
00183
QMap<QString,
QStringList> _implicitAllowMap, _implicitDenyMap;
00184 KTimeout *_timeouts;
00185
00186
QPtrList<KWalletTransaction> _transactions;
00187 };
00188
00189
00190 #endif