Select Git revision
recording_backend_insite.cpp
recording_backend_insite.cpp 9.29 KiB
#include <stdexcept>
// Includes from libnestutil:
#include "compose.hpp"
// Includes from nestkernel:
#include "kernel_manager.h"
#include "recording_device.h"
#include "vp_manager_impl.h"
// Includes from topology:
#include "topology.h"
// Includes from sli:
#include "dictutils.h"
#include "recording_backend_insite.h"
namespace insite {
RecordingBackendInsite::RecordingBackendInsite()
: data_storage_("tgest"),
http_server_("http://0.0.0.0:" + get_port_string(), &data_storage_),
database_connection_("postgresql://postgres@database") {
pqxx::work txn(database_connection_);
simulation_node_id_ = txn.exec1(
"INSERT INTO nest_simulation_node (address) "
"VALUES ('http://insite-nest-module:" +
get_port_string() +
"') "
"RETURNING id;")[0]
.as<int>();
std::cout << "Simulation node registered to database. Node ID: "
<< simulation_node_id_ << std::endl;
txn.commit();
}
RecordingBackendInsite::~RecordingBackendInsite() throw() {}
void RecordingBackendInsite::initialize() {
std::cout << "RecordingBackendInsite::initialize()\n";
}
void RecordingBackendInsite::finalize() {
std::cout << "RecordingBackendInsite::finalize()\n";
}
void RecordingBackendInsite::enroll(const nest::RecordingDevice& device,
const DictionaryDatum& params) {
std::cout << "RecordingBackendInsite::enroll(" << device.get_label() << ")\n";
if (device.get_type() == nest::RecordingDevice::MULTIMETER) {
auto id = device.get_node_id();
multimeter_infos_.emplace(std::make_pair(id, MultimeterInfo{id, true}));
}
}
void RecordingBackendInsite::disenroll(const nest::RecordingDevice& device) {
std::cout << "RecordingBackendInsite::disenroll(" << device.get_label()
<< ")\n";
}
void RecordingBackendInsite::set_value_names(
const nest::RecordingDevice& device,
const std::vector<Name>& double_value_names,
const std::vector<Name>& long_value_names) {
std::cout << "RecordingBackendInsite::set_value_names()\n";
if (device.get_type() == nest::RecordingDevice::MULTIMETER) {
auto& multimeter = multimeter_infos_.at(device.get_node_id());