1 #ifndef Rosebud_BoostSerializer_H
2 #define Rosebud_BoostSerializer_H
3 #include <Rosebud/Serializer.h>
5 namespace Rosebud {
10 class BoostSerializer: public Serializer {
11 public:
12  using Ptr = std::shared_ptr<BoostSerializer>;
14 protected:
15  BoostSerializer() {}
17 public:
18  static Ptr instance();
19  virtual std::string name() const override;
20  virtual std::string purpose() const override;
21  virtual bool isSerializable(const Ast::ClassPtr&) const override;
22  virtual void generate(std::ostream &header, std::ostream &impl, const Ast::ClassPtr&, const Generator&) const override;
23 };
25 } // namespace
26 #endif
Rosebud is a tool to generate code for ROSE.
Definition: Ast.h:14
virtual bool isSerializable(const Ast::ClassPtr &) const override
Determines if a class should be serialized.
Base class for backend code generators.
Definition: Generator.h:10
virtual void generate(std::ostream &header, std::ostream &impl, const Ast::ClassPtr &, const Generator &) const override
Generate code for the specified class.
Class serializer using Boost Serialization.
virtual std::string name() const override
Every serializer has a unique name.
std::shared_ptr< Class > ClassPtr
Shared-ownership pointer to a Class.
Definition: ud/BasicTypes.h:51
virtual std::string purpose() const override
Single-line description for the serializer.
Base class for serialization generators.
Definition: Serializer.h:11