.. _program_listing_file_src_serializers_XmlSerializer.h: Program Listing for File XmlSerializer.h ======================================== |exhale_lsh| :ref:`Return to documentation for file ` (``src/serializers/XmlSerializer.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #define SCHEMA_METHOD #include "../serializers/Serializer.h" #include "../ifcparse/IfcFile.h" #include #include class XmlSerializer : public Serializer { private: XmlSerializer* implementation_; protected: std::string xml_filename; public: XmlSerializer(IfcParse::IfcFile* file, const std::string& xml_filename); virtual ~XmlSerializer() {} bool ready() { return true; } void writeHeader() {} void finalize() { implementation_->finalize(); } void setFile(IfcParse::IfcFile*) { throw IfcParse::IfcException("Should be supplied on construction"); } }; struct XmlSerializerFactory { typedef boost::function2 fn; class Factory : public std::map { public: Factory(); void bind(const std::string& schema_name, fn); XmlSerializer* construct(const std::string& schema_name, IfcParse::IfcFile*, std::string); }; static Factory& implementations(); };