Belle II Software development
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
15namespace 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.