Object that handles loading/storing a PlannerData object to/from a binary stream. Serialization of vertices and edges is performed using the Boost archive method serialize. Derived vertex/edge classes are handled, presuming those classes implement the serialize method. More...
#include <PlannerDataStorage.h>
Public Member Functions | |
PlannerDataStorage (void) | |
Default constructor. | |
virtual | ~PlannerDataStorage (void) |
Destructor. | |
virtual void | load (const char *filename, base::PlannerData &pd) |
Load the PlannerData structure from the given filename. | |
virtual void | load (std::istream &in, base::PlannerData &pd) |
Deserializes the structure from the given stream. | |
virtual void | store (const base::PlannerData &pd, const char *filename) |
Store (serialize) the structure to the given filename. The StateSpace and ControlSpace that was used to store the data must match those inside of the argument PlannerData. | |
virtual void | store (const base::PlannerData &pd, std::ostream &out) |
Load the PlannerData structure from the given stream. The StateSpace and ControlSpace that was used to store the data must match those inside of the argument PlannerData. |
Protected Member Functions | |
virtual void | loadEdges (base::PlannerData &pd, unsigned int numEdges, boost::archive::binary_iarchive &ia) |
Read numEdges from the binary input ia and store them as PlannerData. It is assumed that the edges can be cast to ompl::control::PlannerDataEdgeControl. | |
virtual void | storeEdges (const base::PlannerData &pd, boost::archive::binary_oarchive &oa) |
Serialize and store all edges in pd to the binary archive. It is assumed that the edges can be cast to ompl::control::PlannerDataEdgeControl. | |
![]() | |
virtual void | loadVertices (PlannerData &pd, unsigned int numVertices, boost::archive::binary_iarchive &ia) |
Read numVertices from the binary input ia and store them as PlannerData. | |
virtual void | storeVertices (const PlannerData &pd, boost::archive::binary_oarchive &oa) |
Serialize and store all vertices in pd to the binary archive. |
Object that handles loading/storing a PlannerData object to/from a binary stream. Serialization of vertices and edges is performed using the Boost archive method serialize. Derived vertex/edge classes are handled, presuming those classes implement the serialize method.
\remarks Since the \e serialize method for vertices and edges is templated, it cannot be virtual. To serialize a derived class AND the base class data, a special call can be invoked inside of \e serialize that instructs the serializer to also serialize the base class. The derived class must also have a GUID exposed to the serializer for proper deserialization at runtime. This is performed with the \e BOOST_CLASS_EXPORT macro. An example of these items is given below: @code
#include <boost/serialization/export.hpp>class MyVertexClass : public ompl::base::PlannerDataVertex { // —SNIP—template <class archive>=""> void serialize(Archive & ar, const unsigned int version) { ar & boost::serialization::base_object<ompl::base::PlannerDataVertex>(*this); // ... (The other members of MyVertexClass) } };BOOST_CLASS_EXPORT(MyVertexClass); It is assumed that the edges in stored/loaded PlannerData can be cast to PlannerDataEdgeControl in this class. If this is not the case, see ompl::base::PlannerDataStorage.
Definition at line 58 of file PlannerDataStorage.h.