acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
cancel.h
1#pragma once
2
3
4#include "acme/exception/exception.h"
5
6
7template < typename CONTEXT_TYPE >
8class cancel_exception :
9 public ::exception
10{
11public:
12
13 using CONTEXT = CONTEXT_TYPE;
14
15 ::string m_strContext = ::type<CONTEXT>().name();
16
17 cancel_exception(const ::scoped_string & scopedstrMessage = nullptr);
18 virtual ~cancel_exception();
19
20
21 //virtual bool get_error_message(string & str,Punsigned ::i32 pnHelpContext = nullptr);
22
23
24};
25
26
27
28template < typename CONTEXT_TYPE >
29cancel_exception<CONTEXT_TYPE>::cancel_exception(const ::scoped_string & scopedstrMessage) :
30 exception(error_cancelled, scopedstrMessage)
31{
32
33}
34template < typename CONTEXT_TYPE >
35cancel_exception<CONTEXT_TYPE>::~cancel_exception()
36{
37
38}
39
40//bool cancel_exception::get_error_message(string & str,Punsigned ::i32 pnHelpContext)
41//{
42//
43// str = what();
44//
45// return true;
46//
47//}
48
49
50template < typename CONTEXT_TYPE >
51[[noreturn]]inline void throw_cancel_exception(const ::scoped_string & scopedstrMessage = {})
52{
53
54 throw cancel_exception<CONTEXT_TYPE>(scopedstrMessage);
55
56}
57
58
59[[noreturn]] inline void cancel_continuation(const ::scoped_string & scopedstrMessage = nullptr)
60{
61
62 throw_cancel_exception<continuation_t>(scopedstrMessage);
63
64}
65
Definition cancel.h:10