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>
45 namespace serialization {
46 template <
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();
56 template <
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) {
83 namespace serialization {
84 template <
class Archive>
86 const unsigned int version) {
91 if (Archive::is_saving::value) name = g->name();
92 ar& BOOST_SERIALIZATION_NVP(name);
96 template <
class Archive>
98 const unsigned int version) {
102 template <
class Archive>
104 const unsigned int version) {
108 template <
class Archive>
109 inline void serialize(Archive& ar, hpp::manipulation::graph::EdgeWkPtr_t& e,
110 const unsigned int version) {
116 template <
class Archive>
117 inline void serialize(Archive& ar, hpp::manipulation::graph::StateWkPtr_t& s,
118 const unsigned int version) {
124 template <
class Archive>
126 const unsigned int version) {
127 load<Archive, hpp::manipulation::Device>(ar, d, version);
129 if (d && har && har->contains(
d->name()))
135 template <
class Archive>
136 inline void load(Archive& ar, hpp::manipulation::DeviceWkPtr_t& d,
137 const unsigned int version) {
138 load<Archive, hpp::manipulation::Device>(ar, d, version);
142 if (har && har->contains(dd->name()))
Definition: connected-component.hh:44
Definition: roadmap-node.hh:42
Definition: roadmap.hh:47
Definition: leaf-connected-comp.hh:110
void serialize(Archive &ar, Eigen::MatrixBlocks< _allRows, _allCols > &b, const unsigned int version)
void load(Archive &ar, hpp::pinocchio::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
archive_ptr_holder & cast(Archive &ar)
void serializeGraphComponent(Archive &ar, shared_ptr< GraphCompT > &c, const unsigned int version)
Definition: serialization.hh:57
HPP_UTIL_DLLAPI const char * version
#define HPP_DYNAMIC_PTR_CAST(t, x)