xtd 0.2.0
cancellation_token.h
Go to the documentation of this file.
1 #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 
12 namespace 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 }
Contains xtd::threading::wait_handle exception.
The xtd namespace contains all fundamental classes to access Hardware, Os, System, and more.
Definition: system_report.h:17
Signals to a xtd::threading::cancellation_token that it should be canceled.
Definition: cancellation_token_source.h:36
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
Propagates notification that operations should be canceled.
Definition: cancellation_token.h:37
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:48