From ae2d05eee4ffcec4c0611d907779ce8ef61d3a6e Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sun, 19 Jul 2015 21:39:28 +0200 Subject: o Going back to a bunch of cpp files instead of launcher+bunch of header files. This ends up with an easier build file and faster builds with CMake's "OBJECT" library type. --- apps/sm-db-insert.h | 82 ----------------------------------------------------- 1 file changed, 82 deletions(-) delete mode 100644 apps/sm-db-insert.h (limited to 'apps/sm-db-insert.h') diff --git a/apps/sm-db-insert.h b/apps/sm-db-insert.h deleted file mode 100644 index 7e08268..0000000 --- a/apps/sm-db-insert.h +++ /dev/null @@ -1,82 +0,0 @@ -#include -#include -#include -#include -#include "json.hpp" -#include - -namespace trygvis { -namespace apps { - -template -using o = boost::optional; -using namespace std; -using json = nlohmann::json; - -class sm_db_insert : public app { -public: - sm_db_insert() : app("sm-db-insert") { - } - - ~sm_db_insert() = default; - - void add_options(po::options_description_easy_init &options) override { - options("file", po::value()->required(), "The file to read"); - } - - int main(app_execution &execution) override { - auto file = execution.vm["file"].as(); - cout << "reading from " << file << endl; - - fstream f(file); - - json j; - - j << f; - - pqxx::connection c("host=localhost dbname=soil-moisture"); - - pqxx::work work(c); - - string mac = j["mac"]; // "aa:bb:cc:dd:ee:ff"; - - auto select_device = "select id from soil_moisture_device where mac=$1"; - auto rs = work.parameterized(select_device)(mac).exec(); - - if (!rs.size()) { - cout << "New device: " << mac << endl; - - auto insert_device = "insert into soil_moisture_device(mac) values($1) returning id"; - rs = work.parameterized(insert_device)(mac).exec(); - } - - auto deviceId = rs.begin()["id"].as(); - - int sensor = j["sensor"]; - - auto select_sensor = "select id from soil_moisture_sensor where device=$1 and sensor=$2"; - rs = work.parameterized(select_sensor)(deviceId)(sensor).exec(); - - if (!rs.size()) { - cout << "New sensor: " << sensor << endl; - - auto insert_sensor = "insert into soil_moisture_sensor(device, sensor) values($1, $2) returning id"; - rs = work.parameterized(insert_sensor)(deviceId)(sensor).exec(); - } - auto sensorId = rs.begin()["id"].as(); - - unsigned long timestamp = get(j, "timestamp"); - unsigned int value = get(j, "value"); - - auto insert_sample = "insert into soil_moisture_sample(sensor, timestamp, value) values($1, $2, $3)"; - work.parameterized(insert_sample)(sensorId)(timestamp)(value).exec(); - - cout << "Sample inserted" << endl; - - work.commit(); - - return EXIT_SUCCESS; - } -}; -} -} -- cgit v1.2.3