xtd 0.2.0
event_wait_handle.hpp
Go to the documentation of this file.
1
4#pragma once
6#include "wait_handle.hpp"
7#include "../icomparable.hpp"
8#include "../iequatable.hpp"
9
11namespace xtd {
13 namespace threading {
37 class core_export_ event_wait_handle : public wait_handle, public icomparable<event_wait_handle>, public iequatable<event_wait_handle> {
38 class event_wait_handle_base;
39 class named_event_wait_handle;
40 class unnamed_event_wait_handle;
41 struct data;
42
43 public:
45
47 event_wait_handle();
51 explicit event_wait_handle(bool initial_state);
55 explicit event_wait_handle(const string& name);
59 event_wait_handle(const string& name, bool& created_new);
63 event_wait_handle(bool initial_state, const string& name);
68 event_wait_handle(bool initial_state, const string& name, bool& created_new);
74 event_wait_handle(bool initial_state, event_reset_mode mode);
87 event_wait_handle(bool initial_state, event_reset_mode mode, const string& name);
101 event_wait_handle(bool initial_state, event_reset_mode mode, const string& name, bool& created_new);
103
105 template<class char_t>
106 explicit event_wait_handle(const char_t* name) : event_wait_handle(string(name)) {}
109
111
113 intptr handle() const noexcept override;
114 void handle(intptr value) override;
116
118
120 void close() override;
121
122 int32 compare_to(const event_wait_handle& value) const noexcept override;
123
127 bool equals(const object& obj) const noexcept override;
131 bool equals(const event_wait_handle& other) const noexcept override;
132
136 bool reset();
137
144 bool set();
146
148
161 static event_wait_handle open_existing(const string& name);
162
175 static bool try_open_existing(const string& name, event_wait_handle& result) noexcept;
177
178 protected:
180
182 bool signal() override;
183
184 bool wait(int32 milliseconds_timeout) override;
186
187 private:
188 void create(bool initial_state, bool& created_new);
189
190 xtd::sptr<data> data_;
191 };
192 }
193}
Defines a generalized comparison method that a value type or class implements to create a type-specif...
Definition icomparable.hpp:21
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.hpp:22
Represents a thread synchronization event.
Definition event_wait_handle.hpp:37
static bool try_open_existing(const string &name, event_wait_handle &result) noexcept
Opens the specified named synchronization event, if it already exists, and returns a value that indic...
void close() override
Releases all resources held by the current xtd::threading::wait_handle.
bool equals(const object &obj) const noexcept override
Determines whether the specified object is equal to the current object.
bool wait(int32 milliseconds_timeout) override
wait ownership of the specified mutex object.
bool set()
Sets the state of the event to signaled, allowing one or more waiting threads to proceed.
event_wait_handle(bool initial_state, const string &name, bool &created_new)
Initializes a new instance of the xtd::threading::event_wait_handle class, specifying whether the wai...
event_wait_handle(bool initial_state, const string &name)
Initializes a new instance of the xtd::threading::event_wait_handle class, specifying whether the wai...
event_wait_handle(bool initial_state, event_reset_mode mode, const string &name)
Initializes a new instance of the xtd::threading::event_wait_handle class, specifying whether the wai...
event_wait_handle(const string &name, bool &created_new)
Initializes a new instance of the xtd::threading::event_wait_handle class, specifying whether the wai...
static event_wait_handle open_existing(const string &name)
Opens the specified named synchronization event, if it already exists.
event_wait_handle(const string &name)
Initializes a new instance of the xtd::threading::event_wait_handle class, specifying the name.
event_wait_handle(bool initial_state, event_reset_mode mode, const string &name, bool &created_new)
Initializes a new instance of the xtd::threading::event_wait_handle class, specifying whether the wai...
event_wait_handle(bool initial_state)
Initializes a new instance of the xtd::threading::event_wait_handle class, specifying whether the wai...
intptr handle() const noexcept override
Gets the native operating system handle.
bool signal() override
Releases ownership of the specified wait_handle object.
bool reset()
Sets the state of the event to nonsignaled, causing threads to block.
event_wait_handle(bool initial_state, event_reset_mode mode)
Initializes a new instance of the xtd::threading::event_wait_handle class, specifying whether the wai...
wait_handle()=default
Initializes a new instance of the xtd::threading::wait_handle class.
Contains xtd::threading::event_reset_mode enumeration.
#define core_export_
Define shared library export.
Definition core_export.hpp:13
xtd::basic_string< char > string
Represents text as a sequence of UTF-8 code units.
Definition __string_definitions.hpp:43
event_reset_mode
Indicates whether an xtd::threading::event_wait_handle is reset automatically or manually after recei...
Definition event_reset_mode.hpp:24
xtd::shared_ptr_object< type_t > sptr
The xtd::sptr object is a shared pointer.
Definition sptr.hpp:25
int32_t int32
Represents a 32-bit signed integer.
Definition int32.hpp:23
intmax_t intptr
Represent a pointer or a handle.
Definition intptr.hpp:23
@ other
The operating system is other.
Definition platform_id.hpp:58
Contains xtd::icomparable interface.
Contains xtd::iequatable interface.
The xtd::threading namespace provides classes and interfaces that enable multithreaded programming....
Definition abandoned_mutex_exception.hpp:10
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition abstract_object.hpp:8
constexpr const_pointer data() const noexcept
Gets direct access to the underlying contiguous storage.
Definition read_only_span.hpp:201
Contains xtd::threading::wait_handle class.