Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
IVT
src
Threading
Event.h
Go to the documentation of this file.
1
// ****************************************************************************
2
// This file is part of the Integrating Vision Toolkit (IVT).
3
//
4
// The IVT is maintained by the Karlsruhe Institute of Technology (KIT)
5
// (www.kit.edu) in cooperation with the company Keyetech (www.keyetech.de).
6
//
7
// Copyright (C) 2014 Karlsruhe Institute of Technology (KIT).
8
// All rights reserved.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are met:
12
//
13
// 1. Redistributions of source code must retain the above copyright
14
// notice, this list of conditions and the following disclaimer.
15
//
16
// 2. Redistributions in binary form must reproduce the above copyright
17
// notice, this list of conditions and the following disclaimer in the
18
// documentation and/or other materials provided with the distribution.
19
//
20
// 3. Neither the name of the KIT nor the names of its contributors may be
21
// used to endorse or promote products derived from this software
22
// without specific prior written permission.
23
//
24
// THIS SOFTWARE IS PROVIDED BY THE KIT AND CONTRIBUTORS “AS IS” AND ANY
25
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27
// DISCLAIMED. IN NO EVENT SHALL THE KIT OR CONTRIBUTORS BE LIABLE FOR ANY
28
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
33
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
// ****************************************************************************
35
// ****************************************************************************
36
// Filename: Event.h
37
// Author: Kai Welke
38
// Date: 13.01.2006
39
// ****************************************************************************
40
41
42
#ifndef _EVENT_H_
43
#define _EVENT_H_
44
45
46
// ****************************************************************************
47
// Necessary includes
48
// ****************************************************************************
49
50
#include "
Threading.h
"
51
52
#ifdef WIN32
53
#include <windows.h>
54
#else
55
#include <pthread.h>
56
#endif
57
58
59
60
// ****************************************************************************
61
// CEvent
62
// ****************************************************************************
63
68
class
CEvent
69
{
70
public
:
71
// constructor
72
CEvent
();
73
74
// destructor
75
~CEvent
();
76
77
// resets all pending signals
78
void
Reset
();
79
80
// waits for an event, under linux the minimum wait time is one second
81
Threading::EEventStatus
Wait
(
int
nMS =
Threading::WAIT_INFINITE
);
82
83
// signals an event
84
void
Signal
();
85
86
87
private
:
88
#ifdef WIN32
89
CRITICAL_SECTION m_CSWindowsMutex;
90
HANDLE m_SignalEvent;
91
#else
92
pthread_mutex_t
m_PosixMutex
;
93
pthread_mutexattr_t
m_MutexAttr
;
94
pthread_cond_t
m_PosixConditional
;
95
pthread_condattr_t
m_ConditionalAttr
;
96
97
bool
m_bSignaled
;
98
#endif
99
};
100
101
102
103
#endif
/* _EVENT_H */
CEvent
Implementation of events.
Definition:
Event.h:68
Threading::WAIT_INFINITE
const int WAIT_INFINITE
Definition:
Threading.h:59
Threading::EEventStatus
EEventStatus
Definition:
Threading.h:70
CEvent::Wait
Threading::EEventStatus Wait(int nMS=Threading::WAIT_INFINITE)
Definition:
Event.cpp:105
CEvent::CEvent
CEvent()
Definition:
Event.cpp:60
CEvent::~CEvent
~CEvent()
Definition:
Event.cpp:75
CEvent::Signal
void Signal()
Definition:
Event.cpp:206
CEvent::Reset
void Reset()
Definition:
Event.cpp:92
CEvent::m_MutexAttr
pthread_mutexattr_t m_MutexAttr
Definition:
Event.h:93
CEvent::m_bSignaled
bool m_bSignaled
Definition:
Event.h:97
CEvent::m_PosixMutex
pthread_mutex_t m_PosixMutex
Definition:
Event.h:92
CEvent::m_PosixConditional
pthread_cond_t m_PosixConditional
Definition:
Event.h:94
CEvent::m_ConditionalAttr
pthread_condattr_t m_ConditionalAttr
Definition:
Event.h:95
Threading.h
asr_ivt
Author(s): Allgeyer Tobias, Hutmacher Robin, Kleinert Daniel, Meißner Pascal, Scholz Jonas, Stöckle Patrick
autogenerated on Mon Dec 2 2019 03:47:27