-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIncompatibleValueTypeException.h
More file actions
43 lines (36 loc) · 1.04 KB
/
IncompatibleValueTypeException.h
File metadata and controls
43 lines (36 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#pragma once
#include <stdexcept>
#include "SyscallFailure.h"
#include "Hive.h"
#include "MultiString.h"
#include "ValueType.h"
namespace libreg
{
class IncompatibleValueTypeException : public std::exception
{
public:
IncompatibleValueTypeException(libreg::Hive hive,
const MultiString& path,
ValueType expected,
ValueType actual,
const SyscallFailure& inner);
const char* what() const noexcept override;
const MultiString& Path() const;
Hive Hive() const;
const SyscallFailure& Inner() const;
ValueType Expected() const;
ValueType Actual() const;
private:
std::string BuildMessage(libreg::Hive hive,
const MultiString& path,
ValueType expected,
ValueType actual,
const SyscallFailure& inner);
libreg::Hive _hive;
MultiString _path;
ValueType _expected;
ValueType _actual;
SyscallFailure _inner;
std::string _message;
};
}