SNode.C
Loading...
Searching...
No Matches
MariaDBFreeResultCommand.cpp
Go to the documentation of this file.
1
/*
2
* SNode.C - A Slim Toolkit for Network Communication
3
* Copyright (C) Volker Christian <me@vchrist.at>
4
* 2020, 2021, 2022, 2023, 2024, 2025
5
* 2021, 2022 Daniel Flockert
6
*
7
* This program is free software: you can redistribute it and/or modify
8
* it under the terms of the GNU Lesser General Public License as published
9
* by the Free Software Foundation, either version 3 of the License, or
10
* (at your option) any later version.
11
*
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public License
18
* along with this program. If not, see <http://www.gnu.org/licenses/>.
19
*/
20
21
/*
22
* MIT License
23
*
24
* Permission is hereby granted, free of charge, to any person obtaining a copy
25
* of this software and associated documentation files (the "Software"), to deal
26
* in the Software without restriction, including without limitation the rights
27
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
28
* copies of the Software, and to permit persons to whom the Software is
29
* furnished to do so, subject to the following conditions:
30
*
31
* The above copyright notice and this permission notice shall be included in
32
* all copies or substantial portions of the Software.
33
*
34
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
35
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
36
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
37
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
38
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
39
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
40
* THE SOFTWARE.
41
*/
42
43
#
include
"database/mariadb/commands/async/MariaDBFreeResultCommand.h"
44
45
#
ifndef
DOXYGEN_SHOULD_SKIP_THIS
46
47
#
endif
/* DOXYGEN_SHOULD_SKIP_THIS */
48
49
namespace
database::
mariadb
::commands::
async
{
50
51
MariaDBFreeResultCommand
::
MariaDBFreeResultCommand
(MYSQL_RES*& result,
52
const
std::function<
void
(
void
)>& onFreeResult,
53
const
std::function<
void
(
const
std::string&,
unsigned
int
)>& onError)
54
:
MariaDBCommandASync
(
"FreeResult"
, onError)
55
,
result
(
result
)
56
,
onFreeResult
(
onFreeResult
) {
57
}
58
59
MariaDBFreeResultCommand
::~
MariaDBFreeResultCommand
() {
60
if
(result !=
nullptr
) {
61
mysql_free_result(result);
62
}
63
}
64
65
int
MariaDBFreeResultCommand
::
commandStart
() {
66
int
ret = 0;
67
68
if
(result !=
nullptr
) {
69
ret = mysql_free_result_start(result);
70
}
71
72
return
ret;
73
}
74
75
int
MariaDBFreeResultCommand
::
commandContinue
(
int
status) {
76
return
mysql_free_result_cont(result, status);
77
}
78
79
bool
MariaDBFreeResultCommand
::
commandCompleted
() {
80
onFreeResult();
81
82
result =
nullptr
;
83
84
return
true
;
85
}
86
87
void
MariaDBFreeResultCommand
::
commandError
(
const
std::string& errorString,
unsigned
int
errorNumber) {
88
onError(errorString, errorNumber);
89
}
90
91
}
// namespace database::mariadb::commands::async
database::mariadb::MariaDBCommandASync
Definition
MariaDBCommandASync.h:54
database::mariadb::commands::async::MariaDBFreeResultCommand
Definition
MariaDBFreeResultCommand.h:54
database::mariadb::commands::async::MariaDBFreeResultCommand::commandCompleted
bool commandCompleted() override
Definition
MariaDBFreeResultCommand.cpp:79
database::mariadb::commands::async::MariaDBFreeResultCommand::commandStart
int commandStart() override
Definition
MariaDBFreeResultCommand.cpp:65
database::mariadb::commands::async::MariaDBFreeResultCommand::~MariaDBFreeResultCommand
~MariaDBFreeResultCommand() override
Definition
MariaDBFreeResultCommand.cpp:59
database::mariadb::commands::async::MariaDBFreeResultCommand::MariaDBFreeResultCommand
MariaDBFreeResultCommand(MYSQL_RES *&result, const std::function< void(void)> &onFreeResult, const std::function< void(const std::string &, unsigned int)> &onError)
Definition
MariaDBFreeResultCommand.cpp:51
database::mariadb::commands::async::MariaDBFreeResultCommand::commandError
void commandError(const std::string &errorString, unsigned int errorNumber) override
Definition
MariaDBFreeResultCommand.cpp:87
database::mariadb::commands::async::MariaDBFreeResultCommand::commandContinue
int commandContinue(int status) override
Definition
MariaDBFreeResultCommand.cpp:75
database::mariadb::commands
Definition
MariaDBAutoCommitCommand.cpp:49
database
Definition
MariaDBClient.h:61
database
mariadb
commands
async
MariaDBFreeResultCommand.cpp
Generated on
for SNode.C by
1.15.0