30#ifndef HPP_MANIPULATION_SERIALIZATION_HH
31#define HPP_MANIPULATION_SERIALIZATION_HH
33#include <boost/serialization/shared_ptr.hpp>
34#include <boost/serialization/split_free.hpp>
35#include <boost/serialization/vector.hpp>
36#include <boost/serialization/weak_ptr.hpp>
46template <
typename Archive>
48 const std::string& name) {
50 if (!har || !har->contains(name))
51 throw std::runtime_error(
52 "Cannot deserialize edges with a provided graph with correct name.");
53 return har->template get<manipulation::graph::Graph>(name,
true)->self();
56template <
class Archive,
class GraphCompT>
58 const unsigned int version) {
63 if (Archive::is_saving::value) {
64 id = (c ? c->id() : -1);
65 if (c && c->parentGraph()) name = c->parentGraph()->name();
67 ar& BOOST_SERIALIZATION_NVP(
id);
68 ar& BOOST_SERIALIZATION_NVP(name);
69 if (!Archive::is_saving::value) {
84template <
class Archive>
86 const unsigned int version) {
91 if (Archive::is_saving::value) name = g->name();
92 ar& BOOST_SERIALIZATION_NVP(name);
93 if (!Archive::is_saving::value) g = getGraphFromArchive(ar, name);
96template <
class Archive>
98 const unsigned int version) {
102template <
class Archive>
104 const unsigned int version) {
108template <
class Archive>
109inline void serialize(Archive& ar, hpp::manipulation::graph::EdgeWkPtr_t& e,
110 const unsigned int version) {
116template <
class Archive>
117inline void serialize(Archive& ar, hpp::manipulation::graph::StateWkPtr_t& s,
118 const unsigned int version) {
124template <
class Archive>
126 const unsigned int version) {
129 if (d && har && har->contains(d->name()))
135template <
class Archive>
136inline void load(Archive& ar, hpp::manipulation::DeviceWkPtr_t& d,
137 const unsigned int version) {
142 if (har && har->contains(dd->name()))
Definition connected-component.hh:44
DevicePtr_t self()
Definition device.hh:58
Definition roadmap-node.hh:42
Definition leaf-connected-comp.hh:110
void serialize(Archive &ar, hpp::manipulation::graph::GraphPtr_t &g, const unsigned int version)
Definition serialization.hh:85
void load(Archive &ar, hpp::manipulation::DevicePtr_t &d, const unsigned int version)
Definition serialization.hh:125
shared_ptr< Edge > EdgePtr_t
Definition fwd.hh:49
shared_ptr< State > StatePtr_t
Definition fwd.hh:48
shared_ptr< Graph > GraphPtr_t
Definition fwd.hh:47
shared_ptr< Device > DevicePtr_t
Definition fwd.hh:40
manipulation::graph::GraphPtr_t getGraphFromArchive(Archive &ar, const std::string &name)
Definition serialization.hh:47
void serializeGraphComponent(Archive &ar, shared_ptr< GraphCompT > &c, const unsigned int version)
Definition serialization.hh:57
archive_ptr_holder & cast(Archive &ar)
#define HPP_DYNAMIC_PTR_CAST(t, x)