17 #ifndef DBServer_PostgreSQL_H_
18 #define DBServer_PostgreSQL_H_
20 #include <string_view>
21 #include <unordered_map>
23 #include "UniSetTypes.h"
24 #include "PostgreSQLInterface.h"
26 #include "SharedMemory.h"
65 static std::shared_ptr<DBServer_PostgreSQL>
init_dbserver(
int argc,
const char*
const* argv,
const std::shared_ptr<uniset::SharedMemory>& ic =
nullptr,
const std::string& prefix =
"pgsql" );
68 static void help_print(
int argc,
const char*
const* argv );
70 inline std::shared_ptr<LogAgregator> logAggregator()
74 inline std::shared_ptr<DebugStream> log()
79 bool isConnectOk()
const;
82 typedef std::unordered_map<int, std::string> DBTableMap;
84 virtual void initDBServer()
override;
85 virtual void initDB( std::unique_ptr<PostgreSQLInterface>& db ) {};
86 virtual void initDBTableMap( DBTableMap& tblMap ) {};
94 virtual std::string getMonitInfo(
const std::string& params )
override;
96 bool writeToBase(
const std::string& query );
97 void createTables(
const std::shared_ptr<PostgreSQLInterface>& db );
99 inline std::string tblName(
int key)
112 std::unique_ptr<PostgreSQLInterface> db;
113 typedef std::queue<std::string> QueryBuffer;
118 const std::initializer_list<std::string_view> tblcols = {
"date",
"time",
"time_usec",
"sensor_id",
"value",
"node" };
120 typedef std::vector<PostgreSQLInterface::Record> InsertBuffer;
121 void flushInsertBuffer();
122 virtual void addRecord(
const PostgreSQLInterface::Record&& rec );
123 virtual bool writeInsertBufferToDB(
const std::string& table
124 ,
const std::initializer_list<std::string_view> colname
125 ,
const InsertBuffer& ibuf );
130 int PingTime = { 15000 };
131 int ReconnectTime = { 30000 };
133 bool connect_ok = {
false };
136 size_t qbufSize = { 200 };
137 bool lastRemove = {
false };
141 size_t ibufSize = { 0 };
142 size_t ibufMaxSize = { 2000 };
143 timeout_t ibufSyncTimeout = { 15000 };
144 float ibufOverflowCleanFactor = { 0.5 };
Definition: MessageType.h:237
The DBServer_PostgreSQL class Реализация работы с PostgreSQL.
Definition: DBServer_PostgreSQL.h:58
Timers
Definition: DBServer_PostgreSQL.h:105
@ FlushInsertBuffer
Definition: DBServer_PostgreSQL.h:108
@ PingTimer
Definition: DBServer_PostgreSQL.h:106
@ ReconnectTimer
Definition: DBServer_PostgreSQL.h:107
virtual bool deactivateObject() override
Деактивация объекта (переопределяется для необходимых действий при завершении работы)
Definition: DBServer_PostgreSQL.cc:494
static std::shared_ptr< DBServer_PostgreSQL > init_dbserver(int argc, const char *const *argv, const std::shared_ptr< uniset::SharedMemory > &ic=nullptr, const std::string &prefix="pgsql")
Definition: DBServer_PostgreSQL.cc:533
static void help_print(int argc, const char *const *argv)
Definition: DBServer_PostgreSQL.cc:560
Definition: DBServer.h:45
Definition: MessageType.h:127
Definition: MessageType.h:171
Definition: MessageType.h:280
Definition: MessageType.h:214
Definition: CommonEventLoop.h:15
KeyType key(const uniset::ObjectId id, const uniset::ObjectId node)
Definition: UniSetTypes.cc:746
long ObjectId
Definition: UniSetTypes_i.idl:30