void Deserialiser::Deserialise(OrderedTask &task) { task.Clear(); task.SetFactory(GetTaskFactoryType()); task.Reset(); OrderedTaskBehaviour beh = task.GetOrderedTaskBehaviour(); Deserialise(beh); task.SetOrderedTaskBehaviour(beh); const DataNode::List children = node.ListChildrenNamed(_T("Point")); for (const auto &i : children) { std::unique_ptr<DataNode> point_node(i); Deserialiser pser(*point_node, waypoints); pser.DeserialiseTaskpoint(task); } }
void Serialiser::deserialise(OrderedTask& data) { data.clear(); data.set_factory(task_factory_type()); data.reset(); OrderedTaskBehaviour beh = data.get_ordered_task_behaviour(); deserialise(beh); data.set_ordered_task_behaviour(beh); DataNode* point_node; unsigned i=0; while ((point_node = m_node.get_child_by_name(_T("Point"),i)) != NULL) { Serialiser pser(*point_node); pser.deserialise_point(data); delete point_node; i++; } }