summaryrefslogtreecommitdiffstats
path: root/maildrop/dotlock.h
diff options
context:
space:
mode:
authorSam Varshavchik2013-08-19 16:39:41 -0400
committerSam Varshavchik2013-08-25 14:43:51 -0400
commit9c45d9ad13fdf439d44d7443ae75da15ea0223ed (patch)
tree7a81a04cb51efb078ee350859a64be2ebc6b8813 /maildrop/dotlock.h
parenta9520698b770168d1f33d6301463bb70a19655ec (diff)
downloadcourier-libs-9c45d9ad13fdf439d44d7443ae75da15ea0223ed.tar.bz2
Initial checkin
Imported from subversion report, converted to git. Updated all paths in scripts and makefiles, reflecting the new directory hierarchy.
Diffstat (limited to 'maildrop/dotlock.h')
-rw-r--r--maildrop/dotlock.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/maildrop/dotlock.h b/maildrop/dotlock.h
new file mode 100644
index 0000000..67c22b0
--- /dev/null
+++ b/maildrop/dotlock.h
@@ -0,0 +1,41 @@
+#ifndef dotlock_h
+#define dotlock_h
+
+
+#include "tempfile.h"
+#include "dotlockrefresh.h"
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Well, here's my attempt to do dot locking.
+//
+/////////////////////////////////////////////////////////////////////////////
+
+class DotLock : public TempFile {
+
+ int attemptlock(const char *, const char *);
+ void Refreshlock();
+ DotLockRefresh refresh;
+ void dorefresh();
+
+ unsigned refresh_interval;
+public:
+ DotLock();
+ ~DotLock();
+
+ void Lock(const char *);
+ void LockMailbox(const char *);
+ void Unlock();
+ //
+ // Sounds simple, right? <sigh>
+
+ friend class DotLockRefresh;
+
+private:
+static unsigned GetLockSleep();
+static unsigned GetLockTimeout();
+static unsigned GetLockRefresh();
+static const char *GetLockExt();
+
+} ;
+#endif