acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
exception.h
1#pragma once
2
3
5
6
7namespace file
8{
9
10
11 class CLASS_DECL_ACME exception :
12 public ::exception
13 {
14 public:
15
16
17 // ::i32 m_lOsError;
18 // ::i32 m_iErrNo;
19 ::file::path m_path;
20 // string m_strAdd;
21 ::file::e_open m_eopen;
22
23
24 exception(const ::e_status& estatus, const ::error_code& errorcode, const ::file::path& path, ::file::e_open eopen = {}, const ::scoped_string& strMessage = nullptr, const ::scoped_string& scopedstrDetails = nullptr);
25 exception(const ::e_status &estatus, const ::file::path &path, ::file::e_open eopen = {}, const ::scoped_string &strMessage = nullptr, const ::scoped_string &scopedstrDetails = nullptr);
26 exception(const ::file::exception& exception);
27 ~exception() override;
28
29
30 void construct_file_exception();
31
32 ::pointer < ::subparticle > clone() override;
33
34// virtual ~exception();
35//
36// virtual void dump(dump_context &) const;
37//
38//
39// virtual void get_status();
40// virtual ::i32 get_os_error();
41// virtual string get_file_path();
42//
43//#ifdef WINDOWS
44// virtual bool get_error_message(string & str, ::u32 * pnHelpContext = nullptr);
45//#endif
46//
47 };
48
49
50 //using exception_pointer = ::pointer<exception>
51
52
53 CLASS_DECL_ACME bool should_ignore_file_exception_callstack(const ::e_status& estatus);
54
55 //CLASS_DECL_ACME void throw_exception(const ::e_status& estatus, ::i32 lOsError, ::i32 iErrNo, const ::file::path& path, ::file::e_open eopen);
56
57 //CLASS_DECL_ACME void throw_::exception(const ::e_status& estatus, ::i32 lOsError, const ::file::path& path = nullptr);
58
59 //CLASS_DECL_ACME void throw_stdio_exception(const ::e_status& estatus, ::i32 lDOSError, const ::file::path& path);
60
61//#ifdef WINDOWS
62//
63// CLASS_DECL_ACME void throw_os_error(DWORD dwError, const ::file::path& path = nullptr);
64//
65//#endif
66
67 //CLASS_DECL_ACME void throw ::file::exception(errno_status(errno), (::i32 iErrNo, const ::file::path& path = nullptr);
68
69 CLASS_DECL_ACME ::i32 dos_to_os_error(::i32 lDosErr);
70
71 const_char_pointer status_short_description(const ::e_status& estatus);
72
73
74} // namespace file
75
76
77
Definition path.h:52
Definition filesystem.h:16