17 #ifndef DBServer_PostgreSQL_H_ 18 #define DBServer_PostgreSQL_H_ 20 #include <unordered_map> 22 #include "UniSetTypes.h" 23 #include "PostgreSQLInterface.h" 63 static std::shared_ptr<DBServer_PostgreSQL>
init_dbserver(
int argc,
const char*
const* argv,
const std::string& prefix =
"pgsql" );
66 static void help_print(
int argc,
const char*
const* argv );
68 inline std::shared_ptr<LogAgregator> logAggregator()
72 inline std::shared_ptr<DebugStream> log()
77 bool isConnectOk()
const;
80 typedef std::unordered_map<int, std::string> DBTableMap;
82 virtual void initDBServer()
override;
83 virtual void initDB( std::unique_ptr<PostgreSQLInterface>& db ) {};
84 virtual void initDBTableMap( DBTableMap& tblMap ) {};
92 virtual std::string getMonitInfo(
const std::string& params )
override;
94 bool writeToBase(
const std::string& query );
95 void createTables(
const std::shared_ptr<PostgreSQLInterface>& db );
97 inline std::string tblName(
int key)
110 std::unique_ptr<PostgreSQLInterface> db;
111 typedef std::queue<std::string> QueryBuffer;
116 const std::vector<std::string> tblcols = {
"date",
"time",
"time_usec",
"sensor_id",
"value",
"node" };
118 typedef std::vector<PostgreSQLInterface::Record> InsertBuffer;
119 void flushInsertBuffer();
120 virtual void addRecord(
const PostgreSQLInterface::Record&& rec );
121 virtual bool writeInsertBufferToDB(
const std::string& table
122 ,
const std::vector<std::string>& colname
123 ,
const InsertBuffer& ibuf );
128 int PingTime = { 15000 };
129 int ReconnectTime = { 30000 };
131 bool connect_ok = {
false };
134 size_t qbufSize = { 200 };
135 bool lastRemove = {
false };
139 size_t ibufSize = { 0 };
140 size_t ibufMaxSize = { 2000 };
141 timeout_t ibufSyncTimeout = { 15000 };
142 float ibufOverflowCleanFactor = { 0.5 };
Definition: DBServer_PostgreSQL.h:105
virtual bool deactivateObject() override
Деактивация объекта (переопределяется для необходимых действий при завершении работы)
Definition: DBServer_PostgreSQL.cc:494
Definition: CommonEventLoop.h:14
Definition: DBServer_PostgreSQL.h:106
Definition: DBServer.h:51
Definition: MessageType.h:170
Definition: MessageType.h:236
static std::shared_ptr< DBServer_PostgreSQL > init_dbserver(int argc, const char *const *argv, const std::string &prefix="pgsql")
Definition: DBServer_PostgreSQL.cc:533
Timers
Definition: DBServer_PostgreSQL.h:102
The DBServer_PostgreSQL class Реализация работы с PostgreSQL.
Definition: DBServer_PostgreSQL.h:54
KeyType key(const uniset::ObjectId id, const uniset::ObjectId node)
Definition: UniSetTypes.cc:718
Definition: DBServer_PostgreSQL.h:104
Definition: MessageType.h:126
Definition: MessageType.h:279
static void help_print(int argc, const char *const *argv)
Definition: DBServer_PostgreSQL.cc:557
Definition: MessageType.h:213
long ObjectId
Definition: UniSetTypes_i.idl:30