37fec5a4b032e5db4ed0b38f2f05278e6db2d3b0
[platform/core/security/vasum.git] / libs / lxcpp / exception.hpp
1 /*
2  *  Copyright (C) 2015 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  *  This library is free software; you can redistribute it and/or
5  *  modify it under the terms of the GNU Lesser General Public
6  *  License version 2.1 as published by the Free Software Foundation.
7  *
8  *  This library is distributed in the hope that it will be useful,
9  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11  *  Lesser General Public License for more details.
12  *
13  *  You should have received a copy of the GNU Lesser General Public
14  *  License along with this library; if not, write to the Free Software
15  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
16  */
17
18 /**
19  * @file
20  * @author  Mateusz Malicki (m.malicki2@samsung.com)
21  * @brief   lxcpp's exceptions definitions
22  */
23
24 #ifndef LXCPP_EXCEPTION_HPP
25 #define LXCPP_EXCEPTION_HPP
26
27 #include <stdexcept>
28
29 namespace lxcpp {
30
31 /**
32  * Base class for exceptions in lxcpp
33  */
34 struct Exception: public std::runtime_error {
35     explicit Exception(const std::string& message)
36         : std::runtime_error(message) {}
37 };
38
39 struct NotImplementedException: public Exception {
40     explicit NotImplementedException(const std::string& message = "Functionality not yet implemented")
41         : Exception(message) {}
42 };
43
44 struct ProcessSetupException: public Exception {
45     explicit ProcessSetupException(const std::string& message = "Error while setting up a process")
46         : Exception(message) {}
47 };
48
49 struct FileSystemSetupException: public Exception {
50     explicit FileSystemSetupException(const std::string& message = "Error during a file system operation")
51         : Exception(message) {}
52 };
53
54 struct EnvironmentSetupException: public Exception {
55     explicit EnvironmentSetupException(const std::string& message = "Error during handling environment variables")
56         : Exception(message) {}
57 };
58
59 struct CredentialSetupException: public Exception {
60     explicit CredentialSetupException(const std::string& message = "Error during handling environment variables")
61         : Exception(message) {}
62 };
63
64 struct CapabilitySetupException: public Exception {
65     explicit CapabilitySetupException(const std::string& message = "Error during a capability operation")
66         : Exception(message) {}
67 };
68
69 struct UtilityException: public Exception {
70     explicit UtilityException(const std::string& message = "Error during an utility operation")
71         : Exception(message) {}
72 };
73
74 struct TerminalException: public Exception {
75     explicit TerminalException(const std::string& message = "Error during a terminal operation")
76         : Exception(message) {}
77 };
78
79 struct BadArgument: public Exception {
80     explicit BadArgument(const std::string& message = "Bad argument passed")
81         : Exception(message) {}
82 };
83
84 struct NoSuchValue: public Exception {
85     explicit NoSuchValue(const std::string& message = "Value not found")
86         : Exception(message) {}
87 };
88
89 struct NetworkException : public Exception {
90     explicit NetworkException (const std::string& message = "Error during setting up a network")
91         : Exception(message) {}
92 };
93
94 struct ConfigureException: public Exception {
95     explicit ConfigureException(const std::string& message = "Error while configuring a container")
96         : Exception(message) {}
97 };
98
99 struct ProvisionException: public Exception {
100     explicit ProvisionException(const std::string& message = "Provision error")
101         : Exception(message) {}
102 };
103
104 } // namespace lxcpp
105
106 #endif // LXCPP_EXCEPTION_HPP