Goby3 3.2.3
2025.05.13
Loading...
Searching...
No Matches
exception.h
Go to the documentation of this file.
1// Copyright 2013-2021:
2// GobySoft, LLC (2013-)
3// Massachusetts Institute of Technology (2007-2014)
4// Community contributors (see AUTHORS file)
5// File authors:
6// Toby Schneider <toby@gobysoft.org>
7//
8//
9// This file is part of the Goby Underwater Autonomy Project Libraries
10// ("The Goby Libraries").
11//
12// The Goby Libraries are free software: you can redistribute them and/or modify
13// them under the terms of the GNU Lesser General Public License as published by
14// the Free Software Foundation, either version 2.1 of the License, or
15// (at your option) any later version.
16//
17// The Goby Libraries are distributed in the hope that they will be useful,
18// but WITHOUT ANY WARRANTY; without even the implied warranty of
19// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20// GNU Lesser General Public License for more details.
21//
22// You should have received a copy of the GNU Lesser General Public License
23// along with Goby. If not, see <http://www.gnu.org/licenses/>.
24
25#ifndef GOBY_MIDDLEWARE_FRONTSEAT_EXCEPTION_H
26#define GOBY_MIDDLEWARE_FRONTSEAT_EXCEPTION_H
27
28#include "goby/exception.h"
30
31namespace goby
32{
33namespace middleware
34{
35namespace frontseat
36{
38{
39 public:
41 : goby::Exception("Unknown FrontSeatException"),
42 helm_err_(protobuf::ERROR_HELM_NONE),
43 is_helm_error_(false),
44 fs_err_(protobuf::ERROR_FRONTSEAT_NONE),
45 is_fs_error_(false)
46 {
47 }
48
50 : goby::Exception(protobuf::HelmError_Name(err)),
51 helm_err_(err),
52 is_helm_error_(true),
53 fs_err_(protobuf::ERROR_FRONTSEAT_NONE),
54 is_fs_error_(false)
55 {
56 }
58 : goby::Exception(protobuf::FrontSeatError_Name(err)),
59 helm_err_(protobuf::ERROR_HELM_NONE),
60 is_helm_error_(false),
61 fs_err_(err),
62 is_fs_error_(true)
63
64 {
65 }
66
67 protobuf::HelmError helm_err() const { return helm_err_; }
68 bool is_helm_error() const { return is_helm_error_; }
69
70 protobuf::FrontSeatError fs_err() const { return fs_err_; }
71 bool is_fs_error() const { return is_fs_error_; }
72
73 private:
74 protobuf::HelmError helm_err_;
75 bool is_helm_error_;
76
78 bool is_fs_error_;
79};
80
81inline std::ostream& operator<<(std::ostream& os, const goby::middleware::frontseat::Exception& e)
82{
83 if (e.is_helm_error())
84 os << "Error in the Helm: " << protobuf::HelmError_Name(e.helm_err());
85 else if (e.is_fs_error())
86 os << "Error in the Frontseat: " << protobuf::FrontSeatError_Name(e.fs_err());
87 else
88 os << "Unknown error.";
89 return os;
90};
91} // namespace frontseat
92} // namespace middleware
93} // namespace goby
94
95#endif
simple exception class for goby applications
Definition exception.h:35
protobuf::FrontSeatError fs_err() const
Definition exception.h:70
Exception(protobuf::HelmError err)
Definition exception.h:49
protobuf::HelmError helm_err() const
Definition exception.h:67
Exception(protobuf::FrontSeatError err)
Definition exception.h:57
const std::string & HelmError_Name(T enum_t_value)
const std::string & FrontSeatError_Name(T enum_t_value)
The global namespace for the Goby project.