base::PlannerDataStorage Class Reference
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 <ompl/base/PlannerDataStorage.h>
Inheritance diagram for base::PlannerDataStorage:

Public Member Functions | |
PlannerDataStorage () | |
Default constructor. | |
virtual | ~PlannerDataStorage () |
Destructor. | |
virtual void | store (const PlannerData &pd, const char *filename) |
Store (serialize) the PlannerData structure to the given filename. | |
virtual void | store (const PlannerData &pd, std::ostream &out) |
Store (serialize) the PlannerData structure to the given stream. | |
virtual void | load (const char *filename, PlannerData &pd) |
Load the PlannerData structure from the given stream. The StateSpace that was used to store the data must match the StateSpace inside of the argument PlannerData. | |
virtual void | load (std::istream &in, PlannerData &pd) |
Load the PlannerData structure from the given stream. The StateSpace that was used to store the data must match the StateSpace inside of the argument PlannerData. | |
Protected Member Functions | |
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. | |
virtual void | loadEdges (PlannerData &pd, unsigned int numEdges, boost::archive::binary_iarchive &ia) |
Read numEdges from the binary input ia and store them as PlannerData. | |
virtual void | storeEdges (const PlannerData &pd, boost::archive::binary_oarchive &oa) |
Serialize and store all edges in pd to the binary archive. |
Detailed Description
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 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 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 BOOST_CLASS_EXPORT macro. An example of these items is given below:
#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);
Definition at line 79 of file PlannerDataStorage.h.
The documentation for this class was generated from the following files:
- ompl/base/PlannerDataStorage.h
- ompl/base/src/PlannerDataStorage.cpp