Skip to content
Snippets Groups Projects
Select Git revision
  • 6982dd585a2961b92d89559bd92747382b13c39e
  • master default protected
  • develop protected
  • feature/use-nest3-dockerfile
  • configurable_address
  • 0.2.0
  • 0.1.0
7 results

recording_backend_insite.cpp

Blame
  • 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());