SNode.C
Loading...
Searching...
No Matches
MariaDBConnectCommand.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/MariaDBConnectCommand.h"
44
45
#
ifndef
DOXYGEN_SHOULD_SKIP_THIS
46
47
#
endif
/* DOXYGEN_SHOULD_SKIP_THIS */
48
49
namespace
database::
mariadb
::commands::
async
{
50
51
MariaDBConnectCommand
::
MariaDBConnectCommand
(
const
MariaDBConnectionDetails
& details,
52
const
std::function<
void
(
void
)>& onConnecting,
53
const
std::function<
void
(
void
)>& onConnect,
54
const
std::function<
void
(
const
std::string&,
unsigned
int
)>& onError)
55
:
MariaDBCommandASync
(
"Connect"
, onError)
56
,
details
(details)
57
,
onConnecting
(
onConnecting
)
58
,
onConnect
(
onConnect
) {
59
}
60
61
int
MariaDBConnectCommand
::
commandStart
() {
62
const
int
status = mysql_real_connect_start(&ret,
63
mysql,
64
details.hostname.c_str(),
65
details.username.c_str(),
66
details.password.c_str(),
67
details.database.c_str(),
68
details.port,
69
details.socket.c_str(),
70
details.flags);
71
72
onConnecting();
73
74
return
status;
75
}
76
77
int
MariaDBConnectCommand
::
commandContinue
(
int
status) {
78
return
mysql_real_connect_cont(&ret, mysql, status);
79
}
80
81
bool
MariaDBConnectCommand
::
commandCompleted
() {
82
onConnect();
83
84
return
true
;
85
}
86
87
void
MariaDBConnectCommand
::
commandError
(
const
std::string& errorString,
unsigned
int
errorNumber) {
88
onError(errorString, errorNumber);
89
}
90
91
std::string
MariaDBConnectCommand
::
commandInfo
() {
92
return
commandName
() +
" "
+
details
.
hostname
+
":"
+ std::to_string(
details
.
port
) +
" | "
+
details
.
socket
;
93
}
94
95
}
// namespace database::mariadb::commands::async
database::mariadb::MariaDBCommandASync
Definition
MariaDBCommandASync.h:54
database::mariadb::MariaDBCommand::commandName
const std::string & commandName()
Definition
MariaDBCommand.cpp:71
database::mariadb::commands::async::MariaDBConnectCommand
Definition
MariaDBConnectCommand.h:55
database::mariadb::commands::async::MariaDBConnectCommand::MariaDBConnectCommand
MariaDBConnectCommand(const database::mariadb::MariaDBConnectionDetails &details, const std::function< void(void)> &onConnecting, const std::function< void(void)> &onConnect, const std::function< void(const std::string &, unsigned int)> &onError)
Definition
MariaDBConnectCommand.cpp:51
database::mariadb::commands::async::MariaDBConnectCommand::commandStart
int commandStart() override
Definition
MariaDBConnectCommand.cpp:61
database::mariadb::commands::async::MariaDBConnectCommand::commandError
void commandError(const std::string &errorString, unsigned int errorNumber) override
Definition
MariaDBConnectCommand.cpp:87
database::mariadb::commands::async::MariaDBConnectCommand::commandContinue
int commandContinue(int status) override
Definition
MariaDBConnectCommand.cpp:77
database::mariadb::commands::async::MariaDBConnectCommand::details
const database::mariadb::MariaDBConnectionDetails details
Definition
MariaDBConnectCommand.h:70
database::mariadb::commands::async::MariaDBConnectCommand::commandInfo
std::string commandInfo() override
Definition
MariaDBConnectCommand.cpp:91
database::mariadb::commands::async::MariaDBConnectCommand::commandCompleted
bool commandCompleted() override
Definition
MariaDBConnectCommand.cpp:81
database::mariadb::commands
Definition
MariaDBAutoCommitCommand.cpp:49
database
Definition
MariaDBClient.h:61
database::mariadb::MariaDBConnectionDetails
Definition
MariaDBConnectionDetails.h:54
database::mariadb::MariaDBConnectionDetails::hostname
std::string hostname
Definition
MariaDBConnectionDetails.h:56
database::mariadb::MariaDBConnectionDetails::port
unsigned int port
Definition
MariaDBConnectionDetails.h:60
database::mariadb::MariaDBConnectionDetails::socket
std::string socket
Definition
MariaDBConnectionDetails.h:61
database
mariadb
commands
async
MariaDBConnectCommand.cpp
Generated on
for SNode.C by
1.15.0