presage 0.9.1
presageException.h
Go to the documentation of this file.
1
2/******************************************************
3 * Presage, an extensible predictive text entry system
4 * ---------------------------------------------------
5 *
6 * Copyright (C) 2008 Matteo Vescovi <matteo.vescovi@yahoo.co.uk>
7
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License along
19 with this program; if not, write to the Free Software Foundation, Inc.,
20 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 *
22 **********(*)*/
23
24
25#ifndef PRESAGE_EXCEPTION
26#define PRESAGE_EXCEPTION
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
45
46#ifdef __cplusplus
47}
48#endif
49
50
51#ifdef __cplusplus
52#ifndef _MSC_VER
53
54#include <exception>
55#include <string>
56
67class PresageException : public std::exception {
68public:
69 PresageException(presage_error_code_t code, const std::string& msg) throw()
70 : m_details (msg),
71 m_code (code)
72 {
73 // intentionally empty
74 }
75
76 virtual ~PresageException() throw()
77 {
78 // intentionally empty
79 }
80
81 virtual const char* what() const throw()
82 {
83 return m_details.c_str();
84 }
85
86 virtual const presage_error_code_t code() const throw()
87 {
88 return m_code;
89 }
90
91private:
92 std::string m_details;
94
95};
96
97#endif /* _MSC_VER */
98#endif /* __cplusplus */
99
100#endif /* PRESAGE_EXCEPTION */
presage_error_code_t m_code
virtual const presage_error_code_t code() const
virtual const char * what() const
PresageException(presage_error_code_t code, const std::string &msg)
std::string m_details
virtual ~PresageException()
presage_error_code_t
@ PRESAGE_OK
@ PRESAGE_ERROR
@ PRESAGE_CONFIG_VARIABLE_ERROR
@ PRESAGE_INVALID_SUGGESTION_ERROR
@ PRESAGE_SQLITE_EXECUTE_SQL_ERROR
@ PRESAGE_INIT_PREDICTOR_ERROR
@ PRESAGE_TOKEN_PREFIX_MISMATCH_ERROR
@ PRESAGE_INVALID_CALLBACK_ERROR
@ PRESAGE_SQLITE_OPEN_DATABASE_ERROR
@ PRESAGE_SMOOTHED_NGRAM_PREDICTOR_LEARN_ERROR