presage  0.9.2~beta
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
29 extern "C" {
30 #endif
31 
32  typedef enum
33  {
34  PRESAGE_OK = 0, /* successful result */
35  PRESAGE_ERROR, /* generic/unknown presage error */
45 
46 #ifdef __cplusplus
47 }
48 #endif
49 
50 
51 #ifdef __cplusplus
52 #ifndef _MSC_VER
53 
54 #include <exception>
55 #include <string>
56 
67 class PresageException : public std::exception {
68 public:
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 
91 private:
92  std::string m_details;
94 
95 };
96 
97 #endif /* _MSC_VER */
98 #endif /* __cplusplus */
99 
100 #endif /* PRESAGE_EXCEPTION */
presage_error_code_t
PresageException(presage_error_code_t code, const std::string &msg)
presage_error_code_t m_code
virtual const char * what() const
virtual ~PresageException()
virtual const presage_error_code_t code() const
std::string m_details