#!/usr/bin/env ruby $: << ".." # Include .. in load path require 'cppgen' class ProxyGen < CppGen def initialize(chassis, outdir, amqp) super(outdir, amqp) @chassis=chassis @classname="AMQP_#{@chassis.caps}Proxy" @filename="qpid/framing/#{@classname}" end def proxy_member(c) c.name.lcaps+"Proxy"; end def inner_class_decl(c) cname=c.name.caps cpp_class(cname, "Proxy") { gen <" include "#{@classname}.h" include "qpid/framing/amqp_types_full.h" @amqp.methods_on(@chassis).each { |m| include "qpid/framing/"+m.body_name } genl namespace("qpid::framing") { genl "#{@classname}::#{@classname}(FrameHandler& f) :" gen " Proxy(f)" @amqp.classes.each { |c| gen ",\n "+proxy_member(c)+"(f)" } genl "{}\n" @amqp.classes.each { |c| inner_class_defn(c) } }} end end ProxyGen.new("client", $outdir, $amqp).generate; ProxyGen.new("server", $outdir, $amqp).generate;