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


Loading...
Searching...
No Matches
LuceneSignal.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 LUCENESIGNAL_H
8#define LUCENESIGNAL_H
9
10#include <boost/thread/condition.hpp>
11#include "Lucene.h"
12
13namespace Lucene {
14
16class LPPAPI LuceneSignal {
17public:
19 virtual ~LuceneSignal();
20
21protected:
22 boost::mutex waitMutex;
23 boost::condition signalCondition;
25
26public:
28 static void createSignal(LuceneSignalPtr& signal, const SynchronizePtr& objectLock);
29
31 void wait(int32_t timeout = 0);
32
34 void notifyAll();
35};
36
37}
38
39#endif
Utility class to support signaling notifications.
Definition LuceneSignal.h:16
LuceneSignal(const SynchronizePtr &objectLock=SynchronizePtr())
boost::mutex waitMutex
Definition LuceneSignal.h:22
SynchronizePtr objectLock
Definition LuceneSignal.h:24
void notifyAll()
Notify all threads waiting for signal.
boost::condition signalCondition
Definition LuceneSignal.h:23
void wait(int32_t timeout=0)
Wait for signal using an optional timeout.
static void createSignal(LuceneSignalPtr &signal, const SynchronizePtr &objectLock)
create a new LuceneSignal instance atomically.
Definition AbstractAllTermDocs.h:12
boost::shared_ptr< Synchronize > SynchronizePtr
Definition LuceneTypes.h:552
boost::shared_ptr< LuceneSignal > LuceneSignalPtr
Definition LuceneTypes.h:540

clucene.sourceforge.net