/sqlite3cc

To get this branch, use:
bzr branch http://bzr.ed.am/sqlite3cc

« back to all changes in this revision

Viewing changes to include/sqlite3cc/exception.h

  • Committer: edam
  • Date: 2010-07-29 09:16:26 UTC
  • Revision ID: edam@waxworlds.org-20100729091626-h8fmg0r74eyfo5ae
- fixed error caused by finialising in-progress queries during rollback that were later finaliased by RAII.

Show diffs side-by-side

added added

removed removed

1
1
/*
2
2
 * exception.h
3
3
 *
4
 
 * Copyright (C) 2009 Tim Marston <tim@ed.am>
 
4
 * Copyright (C) 2009 Tim Marston <edam@waxworlds.org>
5
5
 *
6
6
 * This file is part of sqlite3cc (hereafter referred to as "this program").
7
 
 * See http://ed.am/dev/sqlite3cc for more information.
8
 
 *
9
 
 * This program is free software: you can redistribute it and/or modify it under
10
 
 * the terms of the GNU Lesser General Public License as published by the Free
11
 
 * Software Foundation, either version 3 of the License, or (at your option) any
12
 
 * later version.
13
 
 *
14
 
 * This program is distributed in the hope that it will be useful, but WITHOUT
15
 
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16
 
 * FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License for more
17
 
 * details.
 
7
 * See http://www.waxworlds.org/edam/software/sqlite3cc for more information.
 
8
 *
 
9
 * This program is free software: you can redistribute it and/or modify
 
10
 * it under the terms of the GNU Lesser General Public License as published
 
11
 * by the Free Software Foundation, either version 3 of the License, or
 
12
 * (at your option) any later version.
 
13
 *
 
14
 * This program is distributed in the hope that it will be useful,
 
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
17
 * GNU Lesser General Public License for more details.
18
18
 *
19
19
 * You should have received a copy of the GNU Lesser General Public License
20
20
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
26
26
 
27
27
#include <sqlite3.h>
28
28
#include <stdexcept>
29
 
#include <string>
30
29
 
31
30
 
32
31
namespace sqlite
33
32
{
34
33
 
35
34
 
36
 
class connection;
 
35
class database;
37
36
 
38
37
 
39
38
/**
48
47
public:
49
48
 
50
49
        /**
51
 
         * Constructor that takes an sqlite result code and a connection from which
52
 
         * to determine it's error message.
53
 
         *
54
 
         * @param connection a reference to a connection
55
 
         * @param code the sqlite result code
 
50
         * Constructor that takes an sqlite error code and a database from which to
 
51
         * determine it's error message
 
52
         * @param code the sqlite error code
56
53
         * @see sqlite_errmsg()
57
54
         */
58
55
        explicit sqlite_error(
59
 
                connection &connection,
 
56
                database &database,
60
57
                int code );
61
58
 
62
59
 
63
60
        /**
64
 
         * Constructor that takes an sqlite result code and determines it's own
65
 
         * generic error message.
66
 
         *
67
 
         * @param code the sqlite result code
 
61
         * Constructor that takes an sqlite error code and determines it's own
 
62
         * generic error message
 
63
         * @param code the sqlite error code
68
64
         */
69
65
        explicit sqlite_error(
70
66
                int code );
71
67
 
72
68
        /**
73
 
         * Constructor that allows the creation of an sqlite result with a custom
 
69
         * Constructor that allows the creation of an sqlite error with a custom
74
70
         * message.
75
 
         *
76
71
         * @param message a customer error message string
77
 
         * @param code the sqlite result code
 
72
         * @param code the sqlite error code
78
73
         */
79
74
        explicit sqlite_error(
80
75
                const std::string &message,
87
82
public:
88
83
 
89
84
        /**
90
 
         * Get the sqlite result code associated with this error.
91
 
         *
92
 
         * @returns the sqlite result code
 
85
         * Get the sqlite error code associated with this error
 
86
         * @returns the sqlite error code
93
87
         */
94
88
        int get_code() const;
95
89
 
104
98
private:
105
99
 
106
100
        /**
107
 
         * Retrieve an automatic error message for a given sqlite result code.
108
 
         *
109
 
         * @param the sqlite result code
 
101
         * Retrieve an automatic error message for a given sqlite error code
 
102
         * @param the sqlite error code
110
103
         * @returns the automatic string
111
104
         */
112
105
        const std::string &get_message(
113
106
                int code );
114
107
 
115
 
        /** the result code */
 
108
        /** the error code */
116
109
        int _code;
117
110
 
118
111
        /** the message string */