SNode.C
Loading...
Searching...
No Matches
MariaDBFetchRowCommand.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/MariaDBFetchRowCommand.h"
44
45
#
ifndef
DOXYGEN_SHOULD_SKIP_THIS
46
47
#
endif
/* DOXYGEN_SHOULD_SKIP_THIS */
48
49
namespace
database::
mariadb
::commands::
async
{
50
51
MariaDBFetchRowCommand
::
MariaDBFetchRowCommand
(MYSQL_RES*& result,
52
const
std::function<
void
(
const
MYSQL_ROW)>& onRow,
53
const
std::function<
void
(
const
std::string&,
unsigned
int
)>& onError)
54
:
MariaDBCommandASync
(
"FetchRow"
, onError)
55
,
result
(
result
)
56
,
onRow
(
onRow
) {
57
}
58
59
int
MariaDBFetchRowCommand
::
commandStart
() {
60
int
ret = 0;
61
row =
nullptr
;
62
63
if
(result !=
nullptr
) {
64
ret = mysql_fetch_row_start(&row, result);
65
}
66
67
return
ret;
68
}
69
70
int
MariaDBFetchRowCommand
::
commandContinue
(
int
status) {
71
return
mysql_fetch_row_cont(&row, result, status);
72
}
73
74
bool
MariaDBFetchRowCommand
::
commandCompleted
() {
75
onRow(row);
76
77
return
row ==
nullptr
;
78
}
79
80
void
MariaDBFetchRowCommand
::
commandError
(
const
std::string& errorString,
unsigned
int
errorNumber) {
81
onError(errorString, errorNumber);
82
}
83
84
}
// namespace database::mariadb::commands::async
database::mariadb::MariaDBCommandASync
Definition
MariaDBCommandASync.h:54
database::mariadb::commands::async::MariaDBFetchRowCommand
Definition
MariaDBFetchRowCommand.h:54
database::mariadb::commands::async::MariaDBFetchRowCommand::commandContinue
int commandContinue(int status) override
Definition
MariaDBFetchRowCommand.cpp:70
database::mariadb::commands::async::MariaDBFetchRowCommand::commandStart
int commandStart() override
Definition
MariaDBFetchRowCommand.cpp:59
database::mariadb::commands::async::MariaDBFetchRowCommand::commandError
void commandError(const std::string &errorString, unsigned int errorNumber) override
Definition
MariaDBFetchRowCommand.cpp:80
database::mariadb::commands::async::MariaDBFetchRowCommand::MariaDBFetchRowCommand
MariaDBFetchRowCommand(MYSQL_RES *&result, const std::function< void(const MYSQL_ROW)> &onRow, const std::function< void(const std::string &, unsigned int)> &onError)
Definition
MariaDBFetchRowCommand.cpp:51
database::mariadb::commands::async::MariaDBFetchRowCommand::commandCompleted
bool commandCompleted() override
Definition
MariaDBFetchRowCommand.cpp:74
database::mariadb::commands
Definition
MariaDBAutoCommitCommand.cpp:49
database
Definition
MariaDBClient.h:61
database
mariadb
commands
async
MariaDBFetchRowCommand.cpp
Generated on
for SNode.C by
1.15.0