LAL: Linear Arrangement Library 23.01.00
A library focused on algorithms on linear arrangements of graphs.
Loading...
Searching...
No Matches
treebank_error.hpp
1/*********************************************************************
2 *
3 * Linear Arrangement Library - A library that implements a collection
4 * algorithms for linear arrangments of graphs.
5 *
6 * Copyright (C) 2019 - 2023
7 *
8 * This file is part of Linear Arrangement Library. The full code is available
9 * at:
10 * https://github.com/LAL-project/linear-arrangement-library.git
11 *
12 * Linear Arrangement Library is free software: you can redistribute it
13 * and/or modify it under the terms of the GNU Affero General Public License
14 * as published by the Free Software Foundation, either version 3 of the
15 * License, or (at your option) any later version.
16 *
17 * Linear Arrangement Library is distributed in the hope that it will be
18 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU Affero General Public License for more details.
21 *
22 * You should have received a copy of the GNU Affero General Public License
23 * along with Linear Arrangement Library. If not, see <http://www.gnu.org/licenses/>.
24 *
25 * Contact:
26 *
27 * LluĂ­s Alemany Puig (lalemany@cs.upc.edu)
28 * LARCA (Laboratory for Relational Algorithmics, Complexity and Learning)
29 * CQL (Complexity and Quantitative Linguistics Lab)
30 * Jordi Girona St 1-3, Campus Nord UPC, 08034 Barcelona. CATALONIA, SPAIN
31 * Webpage: https://cqllab.upc.edu/people/lalemany/
32 *
33 * Ramon Ferrer i Cancho (rferrericancho@cs.upc.edu)
34 * LARCA (Laboratory for Relational Algorithmics, Complexity and Learning)
35 * CQL (Complexity and Quantitative Linguistics Lab)
36 * Office S124, Omega building
37 * Jordi Girona St 1-3, Campus Nord UPC, 08034 Barcelona. CATALONIA, SPAIN
38 * Webpage: https://cqllab.upc.edu/people/rferrericancho/
39 *
40 ********************************************************************/
41
42#pragma once
43
44// C++ includes
45#include <string>
46
47// lal includes
48#include <lal/io/treebank_error_type.hpp>
49
50namespace lal {
51namespace io {
52
65public:
67 treebank_error(const std::string& msg, const treebank_error_type& tet) noexcept
68 : m_error_msg(msg), m_error_type(tet)
69 { }
70
72 ~treebank_error() = default;
73
75 treebank_error(const treebank_error& te) noexcept
76 : m_error_msg(te.m_error_msg), m_error_type(te.m_error_type)
77 { }
78
81 : m_error_msg(std::forward<std::string>(te.m_error_msg)),
82 m_error_type(te.m_error_type)
83 { }
84
87 m_error_msg = te.m_error_msg;
88 m_error_type = te.m_error_type;
89 return *this;
90 }
91
94 m_error_msg = std::move(te.m_error_msg);
95 m_error_type = te.m_error_type;
96 return *this;
97 }
98
100 bool operator== (const treebank_error_type& tet) const noexcept
101 { return m_error_type == tet; }
103 bool operator!= (const treebank_error_type& tet) const noexcept
104 { return m_error_type != tet; }
105
107 const std::string& get_error_message() const noexcept
108 { return m_error_msg; }
109
112 { return m_error_type; }
113
114private:
116 std::string m_error_msg;
119};
120
121} // -- namespace io
122} // -- namespace lal
Treebank error report class.
Definition: treebank_error.hpp:64
bool operator==(const treebank_error_type &tet) const noexcept
Compares a treebank error with a treebank error type.
Definition: treebank_error.hpp:100
bool operator!=(const treebank_error_type &tet) const noexcept
Compares a treebank error with a treebank error type.
Definition: treebank_error.hpp:103
treebank_error_type get_error_type() const noexcept
Retrieve the error type.
Definition: treebank_error.hpp:111
const std::string & get_error_message() const noexcept
Retrieve the error message.
Definition: treebank_error.hpp:107
std::string m_error_msg
Error message.
Definition: treebank_error.hpp:116
treebank_error & operator=(const treebank_error &te) noexcept
Copy assignment operator.
Definition: treebank_error.hpp:86
treebank_error(treebank_error &&te) noexcept
Move constructor.
Definition: treebank_error.hpp:80
treebank_error_type m_error_type
Error type.
Definition: treebank_error.hpp:118
treebank_error(const treebank_error &te) noexcept
Copy constructor.
Definition: treebank_error.hpp:75
treebank_error(const std::string &msg, const treebank_error_type &tet) noexcept
Constructor with error message and error type.
Definition: treebank_error.hpp:67
treebank_error_type
Possible errors that can arise while processing a collection.
Definition: treebank_error_type.hpp:62
Main namespace of the library.
Definition: basic_types.hpp:50