Belle II Software  release-08-01-10
MCond.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 #ifndef _Belle2_MCond_h
9 #define _Belle2_MCond_h
10 
11 #include "daq/slc/system/MMutex.h"
12 
13 #include <pthread.h>
14 
15 namespace Belle2 {
21  class MCond {
22 
23  public:
24  static size_t size() { return sizeof(pthread_cond_t); }
25 
26  // constructors and destructor
27  public:
28  MCond();
29  MCond(const MCond&);
30  MCond(void*);
31  ~MCond();
32 
33  // member functions;
34  public:
35  bool init(void*);
36  bool init();
37  bool set(void*);
38  bool signal();
39  bool broadcast();
40  bool wait(MMutex& mutex);
41  bool wait(MMutex& mutex, const unsigned int sec,
42  const unsigned int msec = 0);
43  bool destroy();
44 
45  public:
46  const MCond& operator=(const MCond&);
47 
48  // data members;
49  private:
50  pthread_cond_t* m_cond;
51 
52  };
53 
55 };
56 
57 #endif
Abstract base class for different kinds of events.