xtd 0.2.0
Loading...
Searching...
No Matches
cancellation_token.h
Go to the documentation of this file.
1
4#pragma once
5#include "../core_export.h"
6#include "../iequatable.h"
7#include "../object.h"
8#include "../types.h"
9#include "wait_handle.h"
10
12namespace xtd {
14 namespace threading {
16 class cancellation_token_source;
18
37 class core_export_ cancellation_token : public object, public iequatable<cancellation_token> {
38 struct data;
39 public:
41
48
50
56 cancellation_token(bool canceled);
58
62 cancellation_token& operator=(const cancellation_token& cancellation_token) = default;
65
67
71 bool can_be_canceled() const noexcept;
72
77 bool is_cancellation_requested() const noexcept;
78
81 threading::wait_handle& wait_handle() noexcept;
83
85
87 bool equals(const cancellation_token& other) const noexcept;
89
90 private:
91 friend class cancellation_token_source;
92 explicit cancellation_token(cancellation_token_source& token_source);
93
94 bool canceled_ = false;
95 cancellation_token_source* token_source_ = nullptr;
96 std::shared_ptr<threading::wait_handle> wait_handle_;
97 };
98 }
99}
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.h:18
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition object.h:32
Signals to a xtd::threading::cancellation_token that it should be canceled.
Definition cancellation_token_source.h:36
Propagates notification that operations should be canceled.
Definition cancellation_token.h:37
bool can_be_canceled() const noexcept
Gets whether this token is capable of being in the canceled state.
cancellation_token(bool canceled)
Initializes the xtd::threading::cancellation_token.
static cancellation_token none
Represents an empty xtd::threading::cancellation_token value.
Definition cancellation_token.h:46
Encapsulates operating system specific objects that wait for exclusive access to shared resources.
Definition wait_handle.h:50
#define core_export_
Define shared library export.
Definition core_export.h:13
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.h:10
Contains xtd::threading::wait_handle exception.