Lucene++ - a full-featured, c++ search engine
API Documentation


Loading...
Searching...
No Matches
Lock.h
Go to the documentation of this file.
1
2// Copyright (c) 2009-2014 Alan Wright. All rights reserved.
3// Distributable under the terms of either the Apache License (Version 2.0)
4// or the GNU Lesser General Public License.
6
7#ifndef LOCK_H
8#define LOCK_H
9
10#include "LuceneObject.h"
11
12namespace Lucene {
13
16class LPPAPI Lock : public LuceneObject {
17public:
18 virtual ~Lock();
20
21public:
23 static const int32_t LOCK_OBTAIN_WAIT_FOREVER;
24
26 static const int32_t LOCK_POLL_INTERVAL;
27
28public:
31 virtual bool obtain() = 0;
32
34 virtual void release() = 0;
35
38 virtual bool isLocked() = 0;
39
45 bool obtain(int32_t lockWaitTimeout);
46};
47
48}
49
50#endif
#define LUCENE_CLASS(Name)
Definition LuceneObject.h:24
An interprocess mutex lock.
Definition Lock.h:16
virtual bool isLocked()=0
Returns true if the resource is currently locked. Note that one must still call obtain() before using...
bool obtain(int32_t lockWaitTimeout)
Attempts to obtain an exclusive lock within amount of time given. Polls once per LOCK_POLL_INTERVAL (...
virtual ~Lock()
virtual void release()=0
Releases exclusive access.
static const int32_t LOCK_POLL_INTERVAL
Pass this value to obtain(int64_t) to try forever to obtain the lock.
Definition Lock.h:26
static const int32_t LOCK_OBTAIN_WAIT_FOREVER
How long obtain(int64_t) waits, in milliseconds, in between attempts to acquire the lock.
Definition Lock.h:23
virtual bool obtain()=0
Attempts to obtain exclusive access and immediately return upon success or failure.
Base class for all Lucene classes.
Definition LuceneObject.h:31
Definition AbstractAllTermDocs.h:12

clucene.sourceforge.net