diff options
| author | Tim Redfern <tim@eclectronics.org> | 2014-01-19 19:54:38 +0000 |
|---|---|---|
| committer | Tim Redfern <tim@eclectronics.org> | 2014-01-19 19:54:38 +0000 |
| commit | ce528aa299501ecab63018f91b937766ffbc95be (patch) | |
| tree | 34972d49d69c5cf926a3974a020e945ff4576a8c /NT/src/rotor.cpp | |
| parent | 1e01ca3e89beca6870a3112c4513df66dd07dbb1 (diff) | |
variables writing json
Diffstat (limited to 'NT/src/rotor.cpp')
| -rw-r--r-- | NT/src/rotor.cpp | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/NT/src/rotor.cpp b/NT/src/rotor.cpp index d244d49..eeffab9 100644 --- a/NT/src/rotor.cpp +++ b/NT/src/rotor.cpp @@ -7,7 +7,29 @@ using namespace std; using namespace Rotor; -Json::Value Node::list_json(){ +template <class T> +Json::Value Variable_type<T>::to_json(){ + Json::Value json; + json["type"]=get_type(); + json["name"]=name; + json["connectable"]=connectable?"yes":"no"; + json["input"]=connection?connection->id:""; + return json; +} + +template <class T> +Json::Value Variable_array_type<T>::to_json(){ + Json::Value json; + json["type"]=get_type(); + json["name"]=name; + json["connectable"]=connectable?"yes":"no"; + json["input"]=Json::arrayValue; + for (auto& input: values) { + json["input"].append(input.connection?input.connection->id:""); + } + return json; +} +Json::Value Node::to_json(){ Json::Value node; node["type"]=type; node["type_id"]=type_id; @@ -20,6 +42,8 @@ Json::Value Node::list_json(){ if (vars.size()){ node["vars"]=Json::arrayValue; for (auto& var: vars) { + node["vars"].append(var.second->to_json()); +/* string type=var.second->get_type(); Json::Value newvar; newvar["type"]=var.second->get_type(); @@ -27,15 +51,15 @@ Json::Value Node::list_json(){ newvar["connectable"]=var.second->connectable?"yes":"no"; if (dynamic_cast<Variable_array*>(var.second)){ newvar["input"]=Json::arrayValue; - for (auto& element: dynamic_cast<Variable_array*>(var.second)->values) { - Json::Value newvalue; - newvar["input"].append(newvalue); + for (auto& input: dynamic_cast<Variable_array*>(var.second)->values) { + newvar["input"].append(input.to_json()); } } else { - newvar["input"]=Json::Value(); + newvar["input"]=var.second->to_json(); } node["vars"].append(newvar); +*/ } } /* |
