TYPE3
[iec.git] / src / type3_AndroidCloud / anbox-master / src / anbox / not_reachable.h
1 /*
2  * Copyright (C) 2016 Canonical, Ltd.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation; version 3.
7  *
8  * This program 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
11  * GNU Lesser General Public License for more details.
12  *
13  * You should have received a copy of the GNU Lesser General Public License
14  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
15  *
16  * Authored by: Thomas Voß <thomas.voss@canonical.com>
17  *
18  */
19
20 #ifndef ANBOX_UTIL_NOT_REACHABLE_H_
21 #define ANBOX_UTIL_NOT_REACHABLE_H_
22
23 #include <stdexcept>
24 #include <string>
25
26 namespace anbox {
27 namespace util {
28 /// @brief NotReachable is thrown from not_reachable.
29 struct NotReachable : public std::logic_error {
30   /// @brief NotImplemented initializes a new instance for the given function
31   /// name.
32   NotReachable(const std::string& function, const std::string& file,
33                std::uint32_t line);
34 };
35
36 /// @brief not_reachable throws NotReachable.
37 [[noreturn]] void not_reachable(const std::string& function,
38                                 const std::string& file, std::uint32_t line);
39 }  // namespace util
40 }  // namespace anbox
41
42 #endif