Program Listing for File node.cc#
↰ Return to documentation for file (src/node.cc)
#include "nodes-graph/node.h"
namespace ng {
std::mt19937 Node::generator_ = std::mt19937(std::random_device()());
std::uniform_int_distribution<std::size_t> Node::distribution_ = std::uniform_int_distribution<std::size_t>(1, MAX_NODE_RANDOM_ID);
Node::Node(
const std::string& name,
const node_id_t& id,
const qualifier_t& qualifier,
const std::set<socket_id_t>& input_sockets,
const std::set<socket_id_t>& output_sockets,
bool proxy
): name_(name),
id_(id),
qualifier_(qualifier),
input_sockets_(input_sockets),
output_sockets_(output_sockets),
proxy_(proxy)
{}
std::size_t Node::make_random_id() {
return distribution_(generator_);
}
void Node::seed_random_ids(uint32_t seed) {
generator_.seed(seed);
distribution_.reset();
}
bool Node::register_input_socket(const socket_id_t& socket_id) {
return input_sockets_.insert(socket_id).second;
}
bool Node::register_output_socket(const socket_id_t& socket_id) {
return output_sockets_.insert(socket_id).second;
}
bool Node::remove_input_socket(const socket_id_t& socket_id) {
return input_sockets_.erase(socket_id) > 0;
}
bool Node::remove_output_socket(const socket_id_t& socket_id) {
return output_sockets_.erase(socket_id) > 0;
}
} // namespace ng