#!/usr/bin/env ruby $: << ".." # Include .. in load path require 'cppgen' class MethodBodyDefaultVisitorGen < CppGen def initialize(outdir, amqp) super(outdir, amqp) @namespace, @classname, @filename = parse_classname("qpid::framing::MethodBodyDefaultVisitor") end def generate() h_file(@filename) { include "qpid/framing/MethodBodyConstVisitor" namespace(@namespace) { genl "class AMQMethodBody;" cpp_class(@classname, "public MethodBodyConstVisitor") { genl "public:" genl "virtual void defaultVisit(const AMQMethodBody&) = 0;" @amqp.methods_.each { |m| genl "virtual void visit(const #{m.body_name}&);" } }}} cpp_file(@filename) { include(@filename) include("all_method_bodies.h") namespace(@namespace) { @amqp.methods_.each { |m| genl "void #{@classname}::visit(const #{m.body_name}& b) { defaultVisit(b); }" }}} end end MethodBodyDefaultVisitorGen.new($outdir, $amqp).generate();