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 ) {};
91 virtual std::string getMonitInfo(
const std::string& params )
override;
93 bool writeToBase(
const std::string& query );
94 void createTables(
const std::shared_ptr<PostgreSQLInterface>& db );
96 inline std::string tblName(
int key)
109 std::unique_ptr<PostgreSQLInterface> db;
110 typedef std::queue<std::string> QueryBuffer;
115 const std::vector<std::string> tblcols = {
"date",
"time",
"time_usec",
"sensor_id",
"value",
"node" };
117 typedef std::vector<PostgreSQLInterface::Record> InsertBuffer;
118 void flushInsertBuffer();
119 virtual void addRecord(
const PostgreSQLInterface::Record&& rec );
120 virtual bool writeInsertBufferToDB(
const std::string& table
121 ,
const std::vector<std::string>& colname
122 ,
const InsertBuffer& ibuf );
127 int PingTime = { 15000 };
128 int ReconnectTime = { 30000 };
130 bool connect_ok = {
false };
133 size_t qbufSize = { 200 };
134 bool lastRemove = {
false };
138 size_t ibufSize = { 0 };
139 size_t ibufMaxSize = { 2000 };
140 timeout_t ibufSyncTimeout = { 15000 };
141 float ibufOverflowCleanFactor = { 0.5 };
Definition: DBServer_PostgreSQL.h:104
virtual bool deactivateObject() override
Деактивиция объекта (переопределяется для необходимых действий при завершении работы) ...
Definition: DBServer_PostgreSQL.cc:464
Definition: CallbackTimer.h:29
Definition: DBServer_PostgreSQL.h:105
Definition: DBServer.h:51
Definition: MessageType.h:168
Definition: MessageType.h:234
static std::shared_ptr< DBServer_PostgreSQL > init_dbserver(int argc, const char *const *argv, const std::string &prefix="pgsql")
Definition: DBServer_PostgreSQL.cc:503
Timers
Definition: DBServer_PostgreSQL.h:101
The DBServer_PostgreSQL class Реализация работы с PostgreSQL.
Definition: DBServer_PostgreSQL.h:54
Definition: DBServer_PostgreSQL.h:103
Definition: MessageType.h:124
static void help_print(int argc, const char *const *argv)
Definition: DBServer_PostgreSQL.cc:527
Definition: MessageType.h:211
static KeyType key(const uniset::ObjectId id, const uniset::ObjectId node)
Definition: UniSetTypes.h:84
long ObjectId
Definition: UniSetTypes_i.idl:30