38int main(
int argc,
char* argv[]) {
39 utils::Config::addStringOption(
"--db-host",
"Hostname of IP-Address of Server",
"[hostname|IP-address]",
"localhost",
true);
41 core::SNodeC::init(argc, argv);
44 .hostname = utils::Config::getStringOptionValue(
"--db-host"),
46 .password =
"pentium5",
49 .socket =
"/run/mysqld/mysqld.sock",
65 "DELETE FROM `snodec`",
66 [&db1](
void) ->
void {
67 VLOG(0) <<
"********** OnQuery 0;";
69 [](my_ulonglong affectedRows) ->
void {
70 VLOG(0) <<
"********** AffectedRows 1: " << affectedRows;
72 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
73 VLOG(0) <<
"Error 1: " << errorString <<
" : " << errorNumber;
76 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
77 VLOG(0) <<
"********** Error 0: " << errorString <<
" : " << errorNumber;
81 "INSERT INTO `snodec`(`username`, `password`) VALUES ('Annett','Hallo')",
82 [&db1](
void) ->
void {
83 VLOG(0) <<
"********** OnQuery 1: ";
85 [](my_ulonglong affectedRows) ->
void {
86 VLOG(0) <<
"********** AffectedRows 2: " << affectedRows;
88 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
89 VLOG(0) <<
"********** Error 2: " << errorString <<
" : " << errorNumber;
92 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
93 VLOG(0) <<
"********** Error 1: " << errorString <<
" : " << errorNumber;
96 "SELECT * FROM snodec",
97 [&r](
const MYSQL_ROW row) ->
void {
99 VLOG(0) <<
"********** Row Result 2: " << row[0] <<
" : " << row[1];
102 VLOG(0) <<
"********** Row Result 2: " << r;
105 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
106 VLOG(0) <<
"********** Error 2: " << errorString <<
" : " << errorNumber;
109 "SELECT * FROM snodec",
110 [&r](
const MYSQL_ROW row) ->
void {
111 if (row !=
nullptr) {
112 VLOG(0) <<
"********** Row Result 2: " << row[0] <<
" : " << row[1];
115 VLOG(0) <<
"********** Row Result 2: " << r;
118 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
119 VLOG(0) <<
"********** Error 2: " << errorString <<
" : " << errorNumber;
125 "SELECT * FROM snodec",
126 [](
const MYSQL_ROW row) ->
void {
127 if (row !=
nullptr) {
128 VLOG(0) <<
"Row Result 3: " << row[0] <<
" : " << row[1];
130 VLOG(0) <<
"Row Result 3:";
133 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
134 VLOG(0) <<
"Error 3: " << errorString <<
" : " << errorNumber;
141 "SELECT * FROM snodec",
142 [&db2, &r1, &r2](
const MYSQL_ROW row) ->
void {
143 if (row !=
nullptr) {
144 VLOG(0) <<
"Row Result 4: " << row[0] <<
" : " << row[1];
146 VLOG(0) <<
"Row Result 4:";
149 "SELECT * FROM snodec",
150 [&db2, &r1, &r2](
const MYSQL_ROW row) ->
void {
151 if (row !=
nullptr) {
152 VLOG(0) <<
"Row Result 5: " << row[0] <<
" : " << row[1];
154 VLOG(0) <<
"Row Result 5:";
156 core::timer::Timer dbTimer1 = core::timer::Timer::intervalTimer(
157 [&db2, &r1](
const std::function<
void()>& stop) ->
void {
159 VLOG(0) <<
"Tick 2: " << i++;
163 "SELECT * FROM snodec",
164 [&r1](
const MYSQL_ROW row) ->
void {
165 if (row !=
nullptr) {
166 VLOG(0) <<
"Row Result 6: " << row[0] <<
" : " << row[1];
169 VLOG(0) <<
"Row Result 6: " << r1;
172 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
173 VLOG(0) <<
"Error 6: " << errorString <<
" : " << errorNumber;
179 core::timer::Timer dbTimer2 = core::timer::Timer::intervalTimer(
180 [&db2, &r2](
const std::function<
void()>& stop) ->
void {
182 VLOG(0) <<
"Tick 0.7: " << i++;
186 "SELECT * FROM snodec",
187 [&db2, &r2](
const MYSQL_ROW row) ->
void {
188 if (row !=
nullptr) {
189 VLOG(0) <<
"Row Result 7: " << row[0] <<
" : " << row[1];
192 VLOG(0) <<
"Row Result 7: " << r2;
194 [](
unsigned int fieldCount) ->
void {
195 VLOG(0) <<
"************ FieldCount ************ = " << fieldCount;
197 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
198 VLOG(0) <<
"Error 7: " << errorString <<
" : " << errorNumber;
202 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
203 VLOG(0) <<
"Error 7: " << errorString <<
" : " << errorNumber;
207 [](
unsigned int fieldCount) ->
void {
208 VLOG(0) <<
"************ FieldCount ************ = " << fieldCount;
210 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
211 VLOG(0) <<
"Error 7: " << errorString <<
" : " << errorNumber;
217 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
218 VLOG(0) <<
"Error 5: " << errorString <<
" : " << errorNumber;
222 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
223 VLOG(0) <<
"Error 4: " << errorString <<
" : " << errorNumber;
226 core::timer::Timer dbTimer = core::timer::Timer::intervalTimer(
227 [&db2](
const std::function<
void()>& stop) ->
void {
229 VLOG(0) <<
"Tick 0.1: " << i++;
232 VLOG(0) <<
"Stop Stop";
237 db2.startTransactions(
239 VLOG(0) <<
"Transactions activated 10:";
241 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
242 VLOG(0) <<
"Error 8: " << errorString <<
" : " << errorNumber;
245 "INSERT INTO `snodec`(`username`, `password`) VALUES ('Annett','Hallo')",
246 [&db2, j](
void) ->
void {
247 VLOG(0) <<
"Inserted 10: " << j;
249 [](my_ulonglong affectedRows) ->
void {
250 VLOG(0) <<
"AffectedRows 11: " << affectedRows;
252 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
253 VLOG(0) <<
"Error 11: " << errorString <<
" : " << errorNumber;
256 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
257 VLOG(0) <<
"Error 10: " << errorString <<
" : " << errorNumber;
262 VLOG(0) <<
"Rollback success 11";
264 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
265 VLOG(0) <<
"Error 12: " << errorString <<
" : " << errorNumber;
269 "INSERT INTO `snodec`(`username`, `password`) VALUES ('Annett','Hallo')",
270 [&db2, j](
void) ->
void {
271 VLOG(0) <<
"Inserted 13: " << j;
273 [](my_ulonglong affectedRows) ->
void {
274 VLOG(0) <<
"AffectedRows 14: " << affectedRows;
276 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
277 VLOG(0) <<
"Error 14: " << errorString <<
" : " << errorNumber;
280 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
281 VLOG(0) <<
"Error 13: " << errorString <<
" : " << errorNumber;
286 VLOG(0) <<
"Commit success 15";
288 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
289 VLOG(0) <<
"Error 15: " << errorString <<
" : " << errorNumber;
293 "SELECT COUNT(*) FROM snodec",
294 [&db2, j, stop](
const MYSQL_ROW row) ->
void {
295 if (row !=
nullptr) {
296 VLOG(0) <<
"Row Result count(*) 16: " << row[0];
297 if (std::atoi(row[0]) != j + 1) {
298 VLOG(0) <<
"Wrong number of rows 16: " << std::atoi(row[0]) <<
" != " << j + 1;
302 VLOG(0) <<
"Row Result count(*) 16: no result:";
304 [](
unsigned int fieldCount) ->
void {
305 VLOG(0) <<
"************ FieldCount ************ = " << fieldCount;
307 [](
const std::string& errorString,
unsigned int errorNumber) ->
void {
308 VLOG(0) <<
"Error 7: " << errorString <<
" : " << errorNumber;
312 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
313 VLOG(0) <<
"Error 16: " << errorString <<
" : " << errorNumber;
318 VLOG(0) <<
"Transactions deactivated 17";
320 [stop](
const std::string& errorString,
unsigned int errorNumber) ->
void {
321 VLOG(0) <<
"Error 17: " << errorString <<
" : " << errorNumber;
328 return core::SNodeC::start();