20 class Node :
public Element {
33 Element::addProbe(probe, tips);
40 while (
end != std::string::npos) {
41 end = tips.find(
"/", begin);
42 std::string
signal = tips.substr(begin,
end);
52 while (
end != std::string::npos) {
53 end = tips.find(
"/", begin);
54 std::string
signal = tips.substr(begin,
end);
55 Element::connectSignal(
signal, feeder);
61 CustomObject*
find(
const string& name) {
62 auto itr = objects_->find(name);
63 if (itr != objects_->end()) {
64 return itr->second.get();
70 if (objects_.use_count() == 1) {
72 for (
auto& pair: *objects_) {
73 pair.second.release();
83 .def_property_readonly(
"name", &Object::getName)
86 .def(
"set", [](
Node&
self, py::dict args){
87 for (
auto item : args) {
88 string key = item.first.cast<
string>();
89 Object::Value value = item.second.cast<Object::Value>();
93 .def(
"set", [](
Node&
self, py::list dicts){
94 for (
auto dict : dicts) {
95 py::dict d = dict.cast<py::dict>();
97 string key = item.first.cast<
string>();
98 Object::Value value = item.second.cast<Object::Value>();
103 .def(
"get", [](
Node&
self,
string& key) {
105 self.getProperty(key, value);
112 .def(
"__repr__", [](
Node&
self) {
113 return "Node(name=" +
self.getName() +
")";