LAL: Linear Arrangement Library 21.07.01
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 - 2021
7 *
8 * This file is part of Linear Arrangement Library. To see the full code
9 * visit the webpage:
10 * https://github.com/lluisalemanypuig/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
79#ifndef SWIG
82 : m_error_msg(std::forward<std::string>(te.m_error_msg)),
83 m_error_type(te.m_error_type)
84 { }
85#endif
86
90 m_error_type = te.m_error_type;
91 return *this;
92 }
93
94#ifndef SWIG
97 m_error_msg = std::move(te.m_error_msg);
98 m_error_type = te.m_error_type;
99 return *this;
100 }
101#endif
102
104 inline bool operator== (const treebank_error_type& tet) const noexcept
105 { return m_error_type == tet; }
106
108 inline const std::string& get_error_message() const noexcept
109 { return m_error_msg; }
110
112 inline treebank_error_type get_error_type() const noexcept
113 { return m_error_type; }
114
115private:
117 std::string m_error_msg;
120};
121
122} // -- namespace io
123} // -- 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:104
treebank_error_type get_error_type() const noexcept
Retrieve the error type.
Definition treebank_error.hpp:112
const std::string & get_error_message() const noexcept
Retrieve the error message.
Definition treebank_error.hpp:108
std::string m_error_msg
Error message.
Definition treebank_error.hpp:117
treebank_error & operator=(const treebank_error &te) noexcept
Copy assignment operator.
Definition treebank_error.hpp:88
treebank_error(treebank_error &&te) noexcept
Move constructor.
Definition treebank_error.hpp:81
treebank_error_type m_error_type
Error type.
Definition treebank_error.hpp:119
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:57
Main namespace of the library.
Definition definitions.hpp:48