KDECore
klockfile.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef KLOCKFILE_H
00021 #define KLOCKFILE_H
00022
00023 #include <kdecore_export.h>
00024 #include <ksharedptr.h>
00025 #include <kglobal.h>
00026
00027 class QString;
00028
00036 class KDECORE_EXPORT KLockFile : public KShared
00037 {
00038 public:
00039 typedef KSharedPtr<KLockFile> Ptr;
00040
00041 explicit KLockFile(const QString &file, const KComponentData &componentName = KGlobal::mainComponent());
00042
00046 ~KLockFile();
00047
00051 enum LockResult {
00055 LockOK = 0,
00056
00060 LockFail,
00061
00065 LockError,
00066
00070 LockStale
00071 };
00072
00073 enum LockFlag {
00077 NoBlockFlag = 1,
00078
00084 ForceFlag = 2
00085 };
00086 Q_DECLARE_FLAGS(LockFlags, LockFlag)
00087
00088
00093 LockResult lock(LockFlags flags=LockFlags());
00094
00098 bool isLocked() const;
00099
00103 void unlock();
00104
00109 int staleTime() const;
00110
00114 void setStaleTime(int _staleTime);
00115
00121 bool getLockInfo(int &pid, QString &hostname, QString &appname);
00122
00123 private:
00124 class Private;
00125 Private *const d;
00126 };
00127
00128 Q_DECLARE_OPERATORS_FOR_FLAGS(KLockFile::LockFlags)
00129
00130 #endif