3#include <QCommandLineOption>
4#include <QCommandLineParser>
7#include <kDB/Repository/Store.h>
8#include <kDB/Repository/TemporaryStore.h>
12 struct ConnectionOptions
14 ConnectionOptions(
bool has_store_options)
15 : hasStoreOptions(has_store_options),
16 temporaryStoreOption(
"temporary-store",
17 "If set, this program creates a temporary store and use that as a "
18 "end-point. Useful for tests and benchmarks."),
19 sectionOption(
"section",
"The section for use as path for the store.",
"store"),
20 nameOption(
"name",
"The name for the store.",
"store"),
21 storePathOption(
"path",
"The path for the store.",
"store"),
22 storePortOption(
"port",
"The port for the store, default to 1242.",
"port")
26 void setup(QCommandLineParser* _parser)
30 _parser->addOption(temporaryStoreOption);
32 _parser->addOption(sectionOption);
33 _parser->addOption(nameOption);
34 _parser->addOption(storePathOption);
35 _parser->addOption(storePortOption);
38 cres_qresult<std::tuple<kDB::Repository::TemporaryStore*, kDB::Repository::Store*>>
39 startStore(QCommandLineParser* _parser)
41 bool temporaryStore = _parser->isSet(temporaryStoreOption);
43 = _parser->isSet(storePortOption) ? _parser->value(storePortOption).toInt() : 1242;
48 cres_try(cres_ignore, ts->start(), on_failure(
delete ts;));
49 return cres_success(std::make_tuple(ts, ts->store()));
54 if(_parser->isSet(storePathOption))
61 kDB::Repository::SectionName(_parser->value(sectionOption)),
62 kDB::Repository::StoreName(_parser->value(nameOption)), kDBPort);
64 cres_try(cres_ignore, store->
start(), on_failure(
delete store;));
65 return cres_success(std::make_tuple(
nullptr, store));
71 QString kDBHostName = _parser->value(storePathOption);
73 = _parser->isSet(storePortOption) ? _parser->value(storePortOption).toInt() : 1242;
76 if(_parser->isSet(storePathOption))
78 connection = kDB::Repository::Connection::create(
79 kDB::Repository::HostName(_parser->value(storePathOption)), kDBPort);
83 connection = kDB::Repository::Connection::create(
84 kDB::Repository::SectionName(_parser->value(sectionOption)),
85 kDB::Repository::StoreName(_parser->value(nameOption)), kDBPort);
91 QCommandLineOption temporaryStoreOption, sectionOption, nameOption, storePathOption,
Definition Connection.h:26
cres_qresult< void > start()
Definition Store.cpp:135
Definition TemporaryStore.h:12