summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorCarl C. Trieloff <cctrieloff@apache.org>2006-11-29 20:33:06 +0000
committerCarl C. Trieloff <cctrieloff@apache.org>2006-11-29 20:33:06 +0000
commitfe775f203f4ecdbd048820e3fa090a93b3fe252a (patch)
tree1f277285bcea015083031a78ad205470493539f2 /cpp
parent4fc6e808ddb2bf16749e6820026a8aa0502ae8a6 (diff)
downloadqpid-python-fe775f203f4ecdbd048820e3fa090a93b3fe252a.tar.gz
Removed old xslt generation files no longer used.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@480711 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp')
-rw-r--r--cpp/etc/stylesheets/amqp_client.xsl175
-rw-r--r--cpp/etc/stylesheets/amqp_client_handler_impl.xsl207
-rw-r--r--cpp/etc/stylesheets/amqp_client_operations.xsl125
-rw-r--r--cpp/etc/stylesheets/amqp_consts.xsl97
-rw-r--r--cpp/etc/stylesheets/amqp_server.xsl207
-rw-r--r--cpp/etc/stylesheets/amqp_server_handler_impl.xsl207
-rw-r--r--cpp/etc/stylesheets/amqp_server_operations.xsl134
-rw-r--r--cpp/etc/stylesheets/code_gen.xsl111
-rw-r--r--cpp/etc/stylesheets/code_utils.xsl213
-rw-r--r--cpp/etc/stylesheets/convert_0.81.xsl427
-rw-r--r--cpp/etc/stylesheets/cpp.xsl335
-rw-r--r--cpp/etc/stylesheets/framing.xsl69
-rw-r--r--cpp/etc/stylesheets/prepare1.xsl124
-rw-r--r--cpp/etc/stylesheets/prepare2.xsl74
-rw-r--r--cpp/etc/stylesheets/prepare3.xsl74
-rw-r--r--cpp/etc/stylesheets/registry.xsl32
-rw-r--r--cpp/etc/stylesheets/utils.xsl214
17 files changed, 0 insertions, 2825 deletions
diff --git a/cpp/etc/stylesheets/amqp_client.xsl b/cpp/etc/stylesheets/amqp_client.xsl
deleted file mode 100644
index 7a669da19a..0000000000
--- a/cpp/etc/stylesheets/amqp_client.xsl
+++ /dev/null
@@ -1,175 +0,0 @@
-<?xml version='1.0'?>
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
- <xsl:import href="code_utils.xsl"/>
-
- <!--
- ==================
- Template: client_h
- ==================
- Client header file.
- -->
- <xsl:template match="amqp" mode="client_h">
- <xsl:param name="domain-cpp-table"/>
- <xsl:result-document href="AMQP_ServerProxy.h" format="textFormat">
- <xsl:value-of select="amqp:copyright()"/>
- <xsl:text>
-#ifndef _AMQP_ServerProxy_
-#define _AMQP_ServerProxy_
-
-#include "AMQP_ServerOperations.h"
-#include "qpid/framing/FieldTable.h"
-#include "qpid/framing/OutputHandler.h"
-
-namespace qpid {
-namespace framing {
-
-class AMQP_ServerProxy : virtual public AMQP_ServerOperations
-{
- OutputHandler* out;
-
- public:
- AMQP_ServerProxy(OutputHandler* _out);
- virtual ~AMQP_ServerProxy() {}&#xA;&#xA;</xsl:text>
- <xsl:for-each select="class">
- <xsl:variable name="class" select="amqp:cpp-class-name(@name)"/>
- <xsl:if test="doc">
- <xsl:text>&#xA;/**&#xA;===== Class: </xsl:text><xsl:value-of select="$class"/><xsl:text> =====&#xA;</xsl:text>
- <xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>&#xA;*/&#xA;</xsl:text>
- </xsl:if>
- <xsl:text> class </xsl:text><xsl:value-of select="$class"/><xsl:text> : virtual public AMQP_ServerOperations::</xsl:text><xsl:value-of select="$class"/><xsl:text>Handler
- {
- OutputHandler* out;
-
- public:
- /* Constructors and destructors */
- </xsl:text><xsl:value-of select="$class"/><xsl:text>(OutputHandler* _out);
- virtual ~</xsl:text><xsl:value-of select="$class"/><xsl:text>();
-
- /* Protocol methods */&#xA;</xsl:text>
- <xsl:for-each select="method">
- <xsl:if test="chassis[@name='server']">
- <xsl:variable name="method" select="amqp:cpp-name(@name)"/>
- <xsl:if test="doc">
- <xsl:text>&#xA;/**&#xA;----- Method: </xsl:text><xsl:value-of select="$class"/><xsl:text>.</xsl:text><xsl:value-of select="$method"/><xsl:text> -----&#xA;</xsl:text>
- <xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>&#xA;*/&#xA;</xsl:text>
- </xsl:if>
- <xsl:for-each select="rule">
- <xsl:text>&#xA;/**&#xA;</xsl:text>
- <xsl:text>Rule "</xsl:text><xsl:value-of select="@name"/><xsl:text>":&#xA;</xsl:text><xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>&#xA;*/&#xA;</xsl:text>
- </xsl:for-each>
- <xsl:text> virtual void </xsl:text><xsl:value-of select="$method"/>
- <xsl:text>( u_int16_t channel</xsl:text><xsl:if test="field"><xsl:text>,&#xA; </xsl:text>
- <xsl:for-each select="field">
- <xsl:variable name="domain-cpp-type" select="amqp:cpp-lookup(@domain, $domain-cpp-table)"/>
- <xsl:value-of select="concat($domain-cpp-type, amqp:cpp-arg-ref($domain-cpp-type), ' ', amqp:cpp-name(@name))"/>
- <xsl:if test="position()!=last()">
- <xsl:text>,&#xA; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:if>
- <xsl:text> );&#xA;</xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:text> }; /* class </xsl:text><xsl:value-of select="$class"/><xsl:text> */&#xA;</xsl:text>
- </xsl:for-each>
- <xsl:text>}; /* class AMQP_ServerProxy */
-
-} /* namespace framing */
-} /* namespace qpid */
-
-#endif&#xA;</xsl:text>
- </xsl:result-document>
- </xsl:template>
-
-
- <!--
- ====================
- Template: client_cpp
- ====================
- Client body.
- -->
- <xsl:template match="amqp" mode="client_cpp">
- <xsl:param name="domain-cpp-table"/>
- <xsl:result-document href="AMQP_ServerProxy.cpp" format="textFormat">
- <xsl:value-of select="amqp:copyright()"/>
- <xsl:text>
-
-#include "AMQP_ServerProxy.h"
-
-namespace qpid {
-namespace framing {
-
-AMQP_ServerProxy::AMQP_ServerProxy(OutputHandler* _out) :
- out(_out)
-{
-}&#xA;&#xA;</xsl:text>
- <xsl:for-each select="class">
- <xsl:variable name="class" select="amqp:cpp-class-name(@name)"/>
- <xsl:text>&#xA;/* ++++++++++ Class: </xsl:text><xsl:value-of select="$class"/><xsl:text> ++++++++++ */
-
-AMQP_ServerProxy::</xsl:text><xsl:value-of select="$class"/><xsl:text>::</xsl:text><xsl:value-of select="$class"/><xsl:text>(OutputHandler* _out) :
- out(_out)
-{
-}
-
-AMQP_ServerProxy::</xsl:text><xsl:value-of select="$class"/><xsl:text>::~</xsl:text><xsl:value-of select="$class"/><xsl:text>() {}&#xA;&#xA;</xsl:text>
- <xsl:for-each select="method">
- <xsl:if test="chassis[@name='server']">
- <xsl:text>void AMQP_ServerProxy::</xsl:text><xsl:value-of select="$class"/><xsl:text>::</xsl:text>
- <xsl:value-of select="amqp:cpp-name(@name)"/><xsl:text>( u_int16_t channel</xsl:text><xsl:if test="field">
- <xsl:text>,&#xA; </xsl:text>
- <xsl:for-each select="field">
- <xsl:variable name="domain-cpp-type" select="amqp:cpp-lookup(@domain, $domain-cpp-table)"/>
- <xsl:value-of select="concat($domain-cpp-type, amqp:cpp-arg-ref($domain-cpp-type), ' ', amqp:cpp-name(@name))"/>
- <xsl:if test="position()!=last()">
- <xsl:text>,&#xA; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:if>
- <xsl:text> )
-{
- out->send( new AMQFrame( channel,
- new </xsl:text><xsl:value-of select="concat($class, amqp:field-name(@name), 'Body')"/><xsl:text>( </xsl:text>
- <xsl:for-each select="field">
- <xsl:value-of select="amqp:cpp-name(@name)"/>
- <xsl:if test="position()!=last()">
- <xsl:text>,&#xA; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:text> ) ) );
-}&#xA;&#xA;</xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:for-each>
- <xsl:text>
-
-} /* namespace framing */
-} /* namespace qpid */&#xA;</xsl:text>
- </xsl:result-document>
- </xsl:template>
-
-</xsl:stylesheet>
diff --git a/cpp/etc/stylesheets/amqp_client_handler_impl.xsl b/cpp/etc/stylesheets/amqp_client_handler_impl.xsl
deleted file mode 100644
index 0472f5d8f8..0000000000
--- a/cpp/etc/stylesheets/amqp_client_handler_impl.xsl
+++ /dev/null
@@ -1,207 +0,0 @@
-<?xml version='1.0'?>
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
- <xsl:import href="code_utils.xsl"/>
-
- <!--
- ===============================
- Template: client_handler_impl_h
- ===============================
- Template to generate the AMQP_ClientHandlerImpl class header file.
- -->
- <xsl:template match="amqp" mode="client_handler_impl_h">
- <xsl:param name="domain-cpp-table"/>
- <xsl:result-document href="AMQP_ClientHandlerImpl.h" format="textFormat">
- <xsl:value-of select="amqp:copyright()"/>
- <xsl:text>
-#ifndef _AMQP_ClientHandlerImpl_
-#define _AMQP_ClientHandlerImpl_
-
-#include "AMQP_ClientOperations.h"
-#include "qpid/framing/FieldTable.h"
-
-namespace qpid {
-namespace framing {
-
-class AMQP_ClientHandlerImpl : virtual public AMQP_ClientOperations
-{&#xA;</xsl:text>
-
- <!-- List of pointers to each inner class instance -->
- <xsl:for-each select="class">
- <xsl:variable name="class" select="concat(amqp:cpp-class-name(@name), 'Handler')"/>
- <xsl:text> AMQP_ClientOperations::</xsl:text><xsl:value-of select="$class"/><xsl:text>* </xsl:text>
- <xsl:value-of select="$class"/><xsl:text>Ptr;&#xA;</xsl:text>
- </xsl:for-each>
- <xsl:text>
- public:
- AMQP_ClientHandlerImpl();
- virtual ~AMQP_ClientHandlerImpl();&#xA;&#xA;</xsl:text>
-
- <!-- List of functions to return pointer to each inner class instance -->
- <xsl:for-each select="class">
- <xsl:variable name="class" select="concat(amqp:cpp-class-name(@name), 'Handler')"/>
- <xsl:text> inline AMQP_ClientOperations::</xsl:text>
- <xsl:value-of select="$class"/><xsl:text>* get</xsl:text><xsl:value-of select="$class"/>
- <xsl:text>() { return </xsl:text><xsl:value-of select="$class"/><xsl:text>Ptr; }&#xA;</xsl:text>
- </xsl:for-each>
- <xsl:text>&#xA;</xsl:text>
-
- <!-- Inner classes -->
- <xsl:for-each select="class">
- <xsl:variable name="class" select="concat(amqp:cpp-class-name(@name), 'Handler')"/>
-
- <!-- Inner class documentation & rules -->
- <xsl:if test="doc">
- <xsl:text>&#xA;/**&#xA;</xsl:text>
- <xsl:text>===== Class: </xsl:text><xsl:value-of select="$class"/><xsl:text>Impl =====&#xA;</xsl:text>
- <xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>*/&#xA;</xsl:text>
- </xsl:if>
-
- <!-- Inner class definition -->
- <xsl:text> class </xsl:text><xsl:value-of select="$class"/>
- <xsl:text>Impl : virtual public AMQP_ClientOperations::</xsl:text><xsl:value-of select="$class"/>
- <xsl:text>&#xA; {
- public:
- /* Constructors and destructors */
- </xsl:text><xsl:value-of select="$class"/><xsl:text>Impl();
- virtual ~</xsl:text><xsl:value-of select="$class"/><xsl:text>Impl();
-
- /* Protocol methods */&#xA;</xsl:text>
-
- <!-- Inner class methods (only if the chassis is set to "client") -->
- <xsl:for-each select="method">
- <xsl:if test="chassis[@name='client']">
- <xsl:variable name="method" select="amqp:cpp-name(@name)"/>
-
- <!-- Inner class method documentation & rules -->
- <xsl:if test="doc">
- <xsl:text>&#xA;/**&#xA;</xsl:text>
- <xsl:text>----- Method: </xsl:text><xsl:value-of select="$class"/>
- <xsl:text>Impl.</xsl:text><xsl:value-of select="@name"/><xsl:text> -----&#xA;</xsl:text>
- <xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>*/&#xA;</xsl:text>
- </xsl:if>
- <xsl:for-each select="rule">
- <xsl:text>&#xA;/**&#xA;</xsl:text>
- <xsl:text>Rule "</xsl:text><xsl:value-of select="@name"/><xsl:text>":&#xA;</xsl:text>
- <xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>*/&#xA;</xsl:text>
- </xsl:for-each>
-
- <!-- Inner class method definition -->
- <xsl:text>&#xA; virtual void </xsl:text><xsl:value-of select="$method"/>
- <xsl:text>( u_int16_t channel</xsl:text>
-
- <!-- Inner class method parameter definition -->
- <xsl:if test="field">
- <xsl:text>,&#xA; </xsl:text>
- <xsl:for-each select="field">
- <xsl:variable name="domain-cpp-type" select="amqp:cpp-lookup(@domain, $domain-cpp-table)"/>
- <xsl:value-of select="concat($domain-cpp-type, amqp:cpp-arg-ref($domain-cpp-type), ' ', amqp:cpp-name(@name))"/>
- <xsl:if test="position()!=last()">
- <xsl:text>,&#xA; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:if>
- <xsl:text> );&#xA;</xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:text>&#xA; }; /* class </xsl:text><xsl:value-of select="$class"/><xsl:text>Impl */&#xA;</xsl:text>
- </xsl:for-each>
- <xsl:text>&#xA;}; /* AMQP_ClientHandlerImpl */
-
-} /* namespace framing */
-} /* namespace qpid */
-
-#endif&#xA;</xsl:text>
- </xsl:result-document>
- </xsl:template>
-
- <!--
- =================================
- Template: client_handler_impl_cpp
- =================================
- Template to generate the AMQP_ClientHandlerImpl class stubs.
- -->
- <xsl:template match="amqp" mode="client_handler_impl_cpp">
- <xsl:param name="domain-cpp-table"/>
- <xsl:result-document href="AMQP_ClientHandlerImpl.cpp" format="textFormat">
- <xsl:value-of select="amqp:copyright()"/>
- <xsl:text>
-#include "AMQP_ClientHandlerImpl.h"
-
-namespace qpid {
-namespace framing {
-
-AMQP_ClientHandlerImpl::AMQP_ClientHandlerImpl() :&#xA; </xsl:text>
- <xsl:for-each select="class">
- <xsl:variable name="class" select="amqp:cpp-class-name(@name)"/>
- <xsl:value-of select="$class"/>
- <xsl:text>HandlerPtr( new </xsl:text><xsl:value-of select="$class"/><xsl:text>HandlerImpl() )</xsl:text>
- <xsl:if test="position()!=last()">
- <xsl:text>,&#xA; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:text>
-{
-}
-
-AMQP_ClientHandlerImpl::~AMQP_ClientHandlerImpl()
-{&#xA;</xsl:text>
- <xsl:for-each select="class">
- <xsl:text> delete </xsl:text><xsl:value-of select="amqp:cpp-class-name(@name)"/><xsl:text>HandlerPtr;&#xA;</xsl:text>
- </xsl:for-each>}
-
- <xsl:for-each select="class">
- <xsl:variable name="class" select="amqp:cpp-class-name(@name)"/>
- <xsl:text>&#xA;/* ===== Class: </xsl:text><xsl:value-of select="$class"/><xsl:text>HandlerImpl ===== */&#xA;&#xA;</xsl:text>
- <xsl:text>AMQP_ClientHandlerImpl::</xsl:text><xsl:value-of select="$class"/><xsl:text>HandlerImpl::</xsl:text>
- <xsl:value-of select="$class"/><xsl:text>HandlerImpl()&#xA;{&#xA;}&#xA;&#xA;</xsl:text>
- <xsl:text>AMQP_ClientHandlerImpl::</xsl:text><xsl:value-of select="$class"/><xsl:text>HandlerImpl::~</xsl:text>
- <xsl:value-of select="$class"/><xsl:text>HandlerImpl()&#xA;{&#xA;}&#xA;&#xA;</xsl:text>
- <xsl:for-each select="method">
- <xsl:if test="chassis[@name='client']">
- <xsl:text>void AMQP_ClientHandlerImpl::</xsl:text><xsl:value-of select="$class"/><xsl:text>HandlerImpl::</xsl:text>
- <xsl:value-of select="amqp:cpp-name(@name)"/><xsl:text>( u_int16_t /*channel*/</xsl:text>
- <xsl:if test="field">
- <xsl:text>,&#xA; </xsl:text>
- <xsl:for-each select="field">
- <xsl:variable name="domain-cpp-type" select="amqp:cpp-lookup(@domain, $domain-cpp-table)"/>
- <xsl:value-of select="concat($domain-cpp-type, amqp:cpp-arg-ref($domain-cpp-type), ' /*', amqp:cpp-name(@name), '*/')"/>
- <xsl:if test="position()!=last()">
- <xsl:text>,&#xA; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:if><xsl:text> )&#xA;{&#xA;}&#xA;&#xA;</xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:for-each>
- <xsl:text>
-
-} /* namespace framing */
-} /* namespace qpid */&#xA;&#xA;</xsl:text>
- </xsl:result-document>
- </xsl:template>
-
-</xsl:stylesheet>
diff --git a/cpp/etc/stylesheets/amqp_client_operations.xsl b/cpp/etc/stylesheets/amqp_client_operations.xsl
deleted file mode 100644
index 8eb62c4244..0000000000
--- a/cpp/etc/stylesheets/amqp_client_operations.xsl
+++ /dev/null
@@ -1,125 +0,0 @@
-<?xml version='1.0'?>
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
- <xsl:import href="code_utils.xsl"/>
-
- <!--
- =============================
- Template: client-operations-h
- =============================
- Template to generate the AMQP_ClientHandler virtual class. This is the pure
- virtual class from which the AMQP_Server and AMQP_ClientHandlerImpl classes
- are derived.
- -->
- <xsl:template match="amqp" mode="client-operations-h">
- <xsl:param name="domain-cpp-table"/>
- <xsl:result-document href="AMQP_ClientOperations.h" format="textFormat">
- <xsl:value-of select="amqp:copyright()"/>
- <xsl:text>
-#ifndef _AMQP_ClientOperations_
-#define _AMQP_ClientOperations_
-
-#include "AMQP_Constants.h"
-#include "qpid/framing/FieldTable.h"
-
-namespace qpid {
-namespace framing {
-
-class AMQP_ClientOperations
-{
- public:
- AMQP_ClientOperations() {}
- virtual ~AMQP_ClientOperations() {}
- inline u_int16_t getAmqpMajor() { return (u_int16_t)</xsl:text><xsl:value-of select="@major"/><xsl:text>; }
- inline u_int16_t getAmqpMinor() { return (u_int16_t)</xsl:text><xsl:value-of select="@minor"/><xsl:text>; }&#xA;&#xA;</xsl:text>
-
- <!-- Inner classes -->
- <xsl:for-each select="class">
- <xsl:variable name="class" select="concat(amqp:cpp-class-name(@name), 'Handler')"/>
-
- <!-- Inner class documentation & rules -->
- <xsl:if test="doc">
- <xsl:text>&#xA;/**&#xA;===== Class: </xsl:text><xsl:value-of select="$class"/><xsl:text> =====&#xA;</xsl:text>
- <xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>*/&#xA;</xsl:text>
- </xsl:if>
-
- <!-- Inner class definition -->
- <xsl:text> class </xsl:text><xsl:value-of select="$class"/><xsl:text>
- {
- public:
- /* Constructors and destructors */
- </xsl:text><xsl:value-of select="$class"/><xsl:text>() {}
- virtual ~</xsl:text><xsl:value-of select="$class"/><xsl:text>() {}
-
- /* Protocol methods */&#xA;</xsl:text>
-
- <!-- Inner class methods (only if the chassis is set to "client") -->
- <xsl:for-each select="method">
- <xsl:if test="chassis[@name='client']">
- <xsl:variable name="method" select="amqp:cpp-name(@name)"/>
-
- <!-- Inner class method documentation & rules -->
- <xsl:if test="doc">
- <xsl:text>&#xA;/**&#xA;----- Method: </xsl:text><xsl:value-of select="$class"/><xsl:text>.</xsl:text>
- <xsl:value-of select="@name"/><xsl:text> -----&#xA;</xsl:text>
- <xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>*/&#xA;</xsl:text>
- </xsl:if>
- <xsl:for-each select="rule">
- <xsl:text>&#xA;/**&#xA;</xsl:text>
- <xsl:text>Rule "</xsl:text><xsl:value-of select="@name"/><xsl:text>":&#xA;</xsl:text>
- <xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>*/&#xA;</xsl:text>
- </xsl:for-each>
-
- <!-- Inner class method definition -->
- <xsl:text> virtual void </xsl:text><xsl:value-of select="$method"/>
- <xsl:text>( u_int16_t channel</xsl:text>
-
- <!-- Inner class method parameter definition -->
- <xsl:if test="field">
- <xsl:text>,&#xA; </xsl:text>
- <xsl:for-each select="field">
- <xsl:variable name="domain-cpp-type" select="amqp:cpp-lookup(@domain, $domain-cpp-table)"/>
- <xsl:value-of select="concat($domain-cpp-type, amqp:cpp-arg-ref($domain-cpp-type), ' ', amqp:cpp-name(@name))"/>
- <xsl:if test="position()!=last()">
- <xsl:text>,&#xA; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:if>
- <xsl:text> ) = 0;&#xA;</xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:text>&#xA; }; /* class </xsl:text><xsl:value-of select="$class"/><xsl:text> */&#xA;</xsl:text>
- </xsl:for-each>
- <xsl:text>&#xA;}; /* class AMQP_ClientOperations */
-
-} /* namespace framing */
-} /* namespace qpid */
-
-#endif&#xA;</xsl:text>
- </xsl:result-document>
- </xsl:template>
-
-</xsl:stylesheet>
diff --git a/cpp/etc/stylesheets/amqp_consts.xsl b/cpp/etc/stylesheets/amqp_consts.xsl
deleted file mode 100644
index 6d16f5703a..0000000000
--- a/cpp/etc/stylesheets/amqp_consts.xsl
+++ /dev/null
@@ -1,97 +0,0 @@
-<?xml version='1.0'?>
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
- <xsl:import href="code_utils.xsl"/>
- <xsl:output method="text" indent="yes" name="textFormat"/>
-
- <xsl:template match="/">
- <xsl:apply-templates select="amqp" mode="domain-table"/>
- <xsl:apply-templates select="amqp" mode="domain-consts"/>
- </xsl:template>
-
- <!--
- ======================
- Template: domain-table
- ======================
- Generates the domain name to C++ type lookup table
- which is required for later generation.
- Format:
- <domains>
- <domain doamin-name="dname1" cpp-type="type1"/>
- <domain doamin-name="dname2" cpp-type="type2"/>
- ...
- </domains>
- -->
- <xsl:template match="amqp" mode="domain-table">
- <domains><xsl:text>&#xA;</xsl:text>
- <xsl:for-each select="domain">
- <xsl:text> </xsl:text><domain>
- <xsl:attribute name="domain-name">
- <xsl:value-of select="@name"/>
- </xsl:attribute>
- <xsl:attribute name="cpp-type">
- <xsl:value-of select="amqp:cpp-type(@type)"/>
- </xsl:attribute>
- </domain><xsl:text>&#xA;</xsl:text>
- </xsl:for-each>
- </domains>
- </xsl:template>
-
- <!--
- =======================
- Template: domain-consts
- =======================
- Generates a header file (AMQP_Constants.h) containing definitions of
- all the <constant> declarations in the AMQP XML specification.
- -->
- <xsl:template match="amqp" mode="domain-consts">
- <xsl:result-document href="AMQP_Constants.h" format="textFormat">
- <xsl:value-of select="amqp:copyright()"/>
- <xsl:text>
-#ifndef _AMQP_Constants_
-#define _AMQP_Constants_
-
-#include "qpid/framing/amqp_types.h"
-
-namespace qpid {
-namespace framing {
-
-/**** Constants ****/&#xA;&#xA;</xsl:text>
- <xsl:for-each select="constant">
- <xsl:if test="doc">
- <xsl:text>&#xA;/*&#xA;</xsl:text>
- <xsl:value-of select="normalize-space(doc)"/>
- <xsl:text>&#xA;*/&#xA;</xsl:text>
- </xsl:if>
- <xsl:text>const u_int16_t </xsl:text><xsl:value-of select="concat('AMQP_', upper-case(amqp:cpp-name(@name)), ' = ', @value)"/><xsl:text>;&#xA;</xsl:text>
- </xsl:for-each>
- <xsl:text>
-
-} /* namespace framing */
-} /* namespace qpid */
-
-#endif&#xA;</xsl:text>
- </xsl:result-document>
- </xsl:template>
-
-</xsl:stylesheet>
diff --git a/cpp/etc/stylesheets/amqp_server.xsl b/cpp/etc/stylesheets/amqp_server.xsl
deleted file mode 100644
index ffadb01210..0000000000
--- a/cpp/etc/stylesheets/amqp_server.xsl
+++ /dev/null
@@ -1,207 +0,0 @@
-<?xml version='1.0'?>
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
- <xsl:import href="code_utils.xsl"/>
-
- <!--
- ==================
- Template: server_h
- ==================
- Server header file.
- -->
- <xsl:template match="amqp" mode="server_h">
- <xsl:param name="domain-cpp-table"/>
- <xsl:result-document href="AMQP_ClientProxy.h" format="textFormat">
- <xsl:value-of select="amqp:copyright()"/>
-#ifndef _AMQP_ClientProxy_
-#define _AMQP_ClientProxy_
-
-#include "AMQP_ClientOperations.h"
-#include "qpid/framing/FieldTable.h"
-#include "qpid/framing/OutputHandler.h"
-
-namespace qpid {
-namespace framing {
-
-class AMQP_ClientProxy : virtual public AMQP_ClientOperations
-{
- public:
-
- AMQP_ClientProxy(OutputHandler* _out);
- virtual ~AMQP_ClientProxy() {};
-
- <!-- inner classes -->
- <xsl:for-each select="class">
- <xsl:variable name="class" select="amqp:cpp-class-name(@name)"/>
- <xsl:if test="doc">
- <xsl:text>&#xA;/**&#xA;===== Class: </xsl:text><xsl:value-of select="$class"/><xsl:text> =====&#xA;</xsl:text>
- <xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>&#xA;*/&#xA;</xsl:text>
- </xsl:if>
- <xsl:text> class </xsl:text><xsl:value-of select="$class"/><xsl:text> : virtual public AMQP_ClientOperations::</xsl:text><xsl:value-of select="$class"/><xsl:text>Handler
- {
- OutputHandler* out;
-
- public:
- /* Constructors and destructors */
- </xsl:text><xsl:value-of select="$class"/><xsl:text>(OutputHandler* _out);
- virtual ~</xsl:text><xsl:value-of select="$class"/><xsl:text>();
-
- /* Protocol methods */&#xA;</xsl:text>
- <xsl:for-each select="method">
- <xsl:if test="chassis[@name='client']">
- <xsl:variable name="method" select="amqp:cpp-name(@name)"/>
- <xsl:if test="doc">
- <xsl:text>&#xA;/**&#xA;----- Method: </xsl:text><xsl:value-of select="$class"/><xsl:text>.</xsl:text><xsl:value-of select="$method"/><xsl:text> -----&#xA;</xsl:text>
- <xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>&#xA;*/&#xA;</xsl:text>
- </xsl:if>
- <xsl:for-each select="rule">
- <xsl:text>&#xA;/**&#xA;</xsl:text>
- <xsl:text>Rule "</xsl:text><xsl:value-of select="@name"/><xsl:text>":&#xA;</xsl:text><xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>&#xA;*/&#xA;</xsl:text>
- </xsl:for-each>
- <xsl:text> virtual void </xsl:text><xsl:value-of select="$method"/>
- <xsl:text>( u_int16_t channel</xsl:text><xsl:if test="field"><xsl:text>,&#xA; </xsl:text>
- <xsl:for-each select="field">
- <xsl:variable name="domain-cpp-type" select="amqp:cpp-lookup(@domain, $domain-cpp-table)"/>
- <xsl:value-of select="concat($domain-cpp-type, amqp:cpp-arg-ref($domain-cpp-type), ' ', amqp:cpp-name(@name))"/>
- <xsl:if test="position()!=last()">
- <xsl:text>,&#xA; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:if>
- <xsl:text> );&#xA;</xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:text> }; /* class </xsl:text><xsl:value-of select="$class"/> */
- </xsl:for-each>
-
- <!-- Accessors for each nested class instance -->
- <xsl:for-each select="class">
- <xsl:value-of select="concat(amqp:cpp-class-name(@name), '&amp; get', amqp:cpp-class-name(@name), '()')"/>;
- </xsl:for-each>
-
- private:
-
- OutputHandler* out;
-
- <!-- An instance of each nested class -->
- <xsl:for-each select="class">
- <xsl:value-of select="concat(amqp:cpp-class-name(@name), ' ', amqp:cpp-name(@name))"/>;
- </xsl:for-each>
-
-
-
- }; /* class AMQP_ClientProxy */
-
-} /* namespace framing */
-} /* namespace qpid */
-
-#endif
-</xsl:result-document>
- </xsl:template>
-
-
- <!--
- ====================
- Template: server_cpp
- ====================
- Server body.
- -->
- <xsl:template match="amqp" mode="server_cpp">
- <xsl:param name="domain-cpp-table"/>
- <xsl:result-document href="AMQP_ClientProxy.cpp" format="textFormat">
- <xsl:value-of select="amqp:copyright()"/>
-
-#include "AMQP_ClientProxy.h"
-
-namespace qpid {
-namespace framing {
-
-AMQP_ClientProxy::AMQP_ClientProxy(OutputHandler* _out) :
- out(_out),
- <!-- Initialisation of each nested class instance -->
- <xsl:for-each select="class">
- <xsl:value-of select="concat(amqp:cpp-name(@name), '(_out)')"/>
- <xsl:if test="position()!=last()">,
- </xsl:if>
- </xsl:for-each>
-
-{
-}
-
- <xsl:for-each select="class">
- <xsl:variable name="class" select="amqp:cpp-class-name(@name)"/>
- <xsl:text>&#xA;/* ++++++++++ Class: </xsl:text><xsl:value-of select="$class"/><xsl:text> ++++++++++ */
-
-AMQP_ClientProxy::</xsl:text><xsl:value-of select="$class"/><xsl:text>::</xsl:text><xsl:value-of select="$class"/><xsl:text>(OutputHandler* _out) :
- out(_out)
-{
-}
-
-AMQP_ClientProxy::</xsl:text><xsl:value-of select="$class"/><xsl:text>::~</xsl:text><xsl:value-of select="$class"/><xsl:text>() {}&#xA;&#xA;</xsl:text>
- <xsl:for-each select="method">
- <xsl:if test="chassis[@name='client']">
- <xsl:text>void AMQP_ClientProxy::</xsl:text><xsl:value-of select="$class"/><xsl:text>::</xsl:text>
- <xsl:value-of select="amqp:cpp-name(@name)"/><xsl:text>( u_int16_t channel</xsl:text><xsl:if test="field">
- <xsl:text>,&#xA; </xsl:text>
- <xsl:for-each select="field">
- <xsl:variable name="domain-cpp-type" select="amqp:cpp-lookup(@domain, $domain-cpp-table)"/>
- <xsl:value-of select="concat($domain-cpp-type, amqp:cpp-arg-ref($domain-cpp-type), ' ', amqp:cpp-name(@name))"/>
- <xsl:if test="position()!=last()">
- <xsl:text>,&#xA; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:if>
- <xsl:text> )
-{
- out->send( new AMQFrame( channel,
- new </xsl:text><xsl:value-of select="concat($class, amqp:field-name(@name), 'Body')"/><xsl:text>( </xsl:text>
- <xsl:for-each select="field">
- <xsl:value-of select="amqp:cpp-name(@name)"/>
- <xsl:if test="position()!=last()">
- <xsl:text>,&#xA; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:text> ) ) );
-}&#xA;&#xA;</xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:for-each>
-
- <!-- Accessors for each nested class instance -->
- <xsl:for-each select="class">
- <xsl:value-of select="concat('AMQP_ClientProxy::', amqp:cpp-class-name(@name), '&amp; AMQP_ClientProxy::get', amqp:cpp-class-name(@name), '()')"/>{
- <xsl:value-of select="concat(' return ', amqp:cpp-name(@name))"/>;
- }
-
- </xsl:for-each>
-
- <xsl:text>
-} /* namespace framing */
-} /* namespace qpid */&#xA;</xsl:text>
- </xsl:result-document>
- </xsl:template>
-
-</xsl:stylesheet>
diff --git a/cpp/etc/stylesheets/amqp_server_handler_impl.xsl b/cpp/etc/stylesheets/amqp_server_handler_impl.xsl
deleted file mode 100644
index 2351f634d7..0000000000
--- a/cpp/etc/stylesheets/amqp_server_handler_impl.xsl
+++ /dev/null
@@ -1,207 +0,0 @@
-<?xml version='1.0'?>
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
- <xsl:import href="code_utils.xsl"/>
-
- <!--
- ===============================
- Template: server_handler_impl_h
- ===============================
- Template to generate the AMQP_ServerHandlerImpl class header file.
- -->
- <xsl:template match="amqp" mode="server_handler_impl_h">
- <xsl:param name="domain-cpp-table"/>
- <xsl:result-document href="AMQP_ServerHandlerImpl.h" format="textFormat">
- <xsl:value-of select="amqp:copyright()"/>
- <xsl:text>
-#ifndef _AMQP_ServerHandlerImpl_
-#define _AMQP_ServerHandlerImpl_
-
-#include "AMQP_ServerOperations.h"
-#include "qpid/framing/FieldTable.h"
-
-namespace qpid {
-namespace framing {
-
-class AMQP_ServerHandlerImpl : virtual public AMQP_ServerOperations
-{&#xA;</xsl:text>
-
- <!-- List of pointers to each inner class instance -->
- <xsl:for-each select="class">
- <xsl:variable name="class" select="concat(amqp:cpp-class-name(@name), 'Handler')"/>
- <xsl:text> AMQP_ServerOperations::</xsl:text><xsl:value-of select="$class"/><xsl:text>* </xsl:text>
- <xsl:value-of select="$class"/><xsl:text>Ptr;&#xA;</xsl:text>
- </xsl:for-each>
- <xsl:text>
- public:
- AMQP_ServerHandlerImpl();
- virtual ~AMQP_ServerHandlerImpl();&#xA;&#xA;</xsl:text>
-
- <!-- List of functions to return pointer to each inner class instance -->
- <xsl:for-each select="class">
- <xsl:variable name="class" select="concat(amqp:cpp-class-name(@name), 'Handler')"/>
- <xsl:text> virtual inline AMQP_ServerOperations::</xsl:text>
- <xsl:value-of select="$class"/><xsl:text>* get</xsl:text><xsl:value-of select="$class"/>
- <xsl:text>() { return </xsl:text><xsl:value-of select="$class"/><xsl:text>Ptr; }&#xA;</xsl:text>
- </xsl:for-each>
- <xsl:text>&#xA;</xsl:text>
-
- <!-- Inner classes -->
- <xsl:for-each select="class">
- <xsl:variable name="class" select="concat(amqp:cpp-class-name(@name), 'Handler')"/>
-
- <!-- Inner class documentation & rules -->
- <xsl:if test="doc">
- <xsl:text>&#xA;/**&#xA;</xsl:text>
- <xsl:text>===== Class: </xsl:text><xsl:value-of select="$class"/><xsl:text>Impl =====&#xA;</xsl:text>
- <xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>*/&#xA;</xsl:text>
- </xsl:if>
-
- <!-- Inner class definition -->
- <xsl:text> class </xsl:text><xsl:value-of select="$class"/>
- <xsl:text>Impl : virtual public AMQP_ServerOperations::</xsl:text><xsl:value-of select="$class"/>
- <xsl:text>&#xA; {
- public:
- /* Constructors and destructors */
- </xsl:text><xsl:value-of select="$class"/><xsl:text>Impl();
- virtual ~</xsl:text><xsl:value-of select="$class"/><xsl:text>Impl();
-
- /* Protocol methods */&#xA;</xsl:text>
-
- <!-- Inner class methods (only if the chassis is set to "server") -->
- <xsl:for-each select="method">
- <xsl:if test="chassis[@name='server']">
- <xsl:variable name="method" select="amqp:cpp-name(@name)"/>
-
- <!-- Inner class method documentation & rules -->
- <xsl:if test="doc">
- <xsl:text>&#xA;/**&#xA;</xsl:text>
- <xsl:text>----- Method: </xsl:text><xsl:value-of select="$class"/>
- <xsl:text>Impl.</xsl:text><xsl:value-of select="@name"/><xsl:text> -----&#xA;</xsl:text>
- <xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>*/&#xA;</xsl:text>
- </xsl:if>
- <xsl:for-each select="rule">
- <xsl:text>&#xA;/**&#xA;</xsl:text>
- <xsl:text>Rule "</xsl:text><xsl:value-of select="@name"/><xsl:text>":&#xA;</xsl:text>
- <xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>*/&#xA;</xsl:text>
- </xsl:for-each>
-
- <!-- Inner class method definition -->
- <xsl:text>&#xA; virtual void </xsl:text><xsl:value-of select="$method"/>
- <xsl:text>( u_int16_t channel</xsl:text>
-
- <!-- Inner class method parameter definition -->
- <xsl:if test="field">
- <xsl:text>,&#xA; </xsl:text>
- <xsl:for-each select="field">
- <xsl:variable name="domain-cpp-type" select="amqp:cpp-lookup(@domain, $domain-cpp-table)"/>
- <xsl:value-of select="concat($domain-cpp-type, amqp:cpp-arg-ref($domain-cpp-type), ' ', amqp:cpp-name(@name))"/>
- <xsl:if test="position()!=last()">
- <xsl:text>,&#xA; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:if>
- <xsl:text> );&#xA;</xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:text>&#xA; }; /* class </xsl:text><xsl:value-of select="$class"/><xsl:text>Impl */&#xA;</xsl:text>
- </xsl:for-each>
- <xsl:text>&#xA;}; /* AMQP_ServerHandlerImpl */
-
-} /* namespace framing */
-} /* namespace qpid */
-
-#endif&#xA;</xsl:text>
- </xsl:result-document>
- </xsl:template>
-
- <!--
- =================================
- Template: server_handler_impl_cpp
- =================================
- Template to generate the AMQP_ServerHandlerImpl class stubs.
- -->
- <xsl:template match="amqp" mode="server_handler_impl_cpp">
- <xsl:param name="domain-cpp-table"/>
- <xsl:result-document href="AMQP_ServerHandlerImpl.cpp" format="textFormat">
- <xsl:value-of select="amqp:copyright()"/>
- <xsl:text>
-#include "AMQP_ServerHandlerImpl.h"
-
-namespace qpid {
-namespace framing {
-
-AMQP_ServerHandlerImpl::AMQP_ServerHandlerImpl() :&#xA; </xsl:text>
- <xsl:for-each select="class">
- <xsl:variable name="class" select="amqp:cpp-class-name(@name)"/>
- <xsl:value-of select="$class"/>
- <xsl:text>HandlerPtr( new </xsl:text><xsl:value-of select="$class"/><xsl:text>HandlerImpl() )</xsl:text>
- <xsl:if test="position()!=last()">
- <xsl:text>,&#xA; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:text>
-{
-}
-
-AMQP_ServerHandlerImpl::~AMQP_ServerHandlerImpl()
-{&#xA;</xsl:text>
- <xsl:for-each select="class">
- <xsl:text> delete </xsl:text><xsl:value-of select="amqp:cpp-class-name(@name)"/><xsl:text>HandlerPtr;&#xA;</xsl:text>
- </xsl:for-each>}
-
- <xsl:for-each select="class">
- <xsl:variable name="class" select="amqp:cpp-class-name(@name)"/>
- <xsl:text>&#xA;/* ===== Class: </xsl:text><xsl:value-of select="$class"/><xsl:text>HandlerImpl ===== */&#xA;&#xA;</xsl:text>
- <xsl:text>AMQP_ServerHandlerImpl::</xsl:text><xsl:value-of select="$class"/><xsl:text>HandlerImpl::</xsl:text>
- <xsl:value-of select="$class"/><xsl:text>HandlerImpl()&#xA;{&#xA;}&#xA;&#xA;</xsl:text>
- <xsl:text>AMQP_ServerHandlerImpl::</xsl:text><xsl:value-of select="$class"/><xsl:text>HandlerImpl::~</xsl:text>
- <xsl:value-of select="$class"/><xsl:text>HandlerImpl()&#xA;{&#xA;}&#xA;&#xA;</xsl:text>
- <xsl:for-each select="method">
- <xsl:if test="chassis[@name='server']">
- <xsl:text>void AMQP_ServerHandlerImpl::</xsl:text><xsl:value-of select="$class"/><xsl:text>HandlerImpl::</xsl:text>
- <xsl:value-of select="amqp:cpp-name(@name)"/><xsl:text>( u_int16_t /*channel*/</xsl:text>
- <xsl:if test="field">
- <xsl:text>,&#xA; </xsl:text>
- <xsl:for-each select="field">
- <xsl:variable name="domain-cpp-type" select="amqp:cpp-lookup(@domain, $domain-cpp-table)"/>
- <xsl:value-of select="concat($domain-cpp-type, amqp:cpp-arg-ref($domain-cpp-type), ' /*', amqp:cpp-name(@name), '*/')"/>
- <xsl:if test="position()!=last()">
- <xsl:text>,&#xA; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:if><xsl:text> )&#xA;{&#xA;}&#xA;&#xA;</xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:for-each>
- <xsl:text>
-
-} /* namespace framing */
-} /* namespace qpid */&#xA;&#xA;</xsl:text>
- </xsl:result-document>
- </xsl:template>
-
-</xsl:stylesheet>
diff --git a/cpp/etc/stylesheets/amqp_server_operations.xsl b/cpp/etc/stylesheets/amqp_server_operations.xsl
deleted file mode 100644
index 884036a2ea..0000000000
--- a/cpp/etc/stylesheets/amqp_server_operations.xsl
+++ /dev/null
@@ -1,134 +0,0 @@
-<?xml version='1.0'?>
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
- <xsl:import href="code_utils.xsl"/>
-
- <!--
- =============================
- Template: server-operations-h
- =============================
- Template to generate the AMQP_ServerHandler virtual class. This is the pure
- virtual class from which the AMQP_Client and AMQP_ServerHandlerImpl classes
- are derived.
- -->
- <xsl:template match="amqp" mode="server-operations-h">
- <xsl:param name="domain-cpp-table"/>
- <xsl:result-document href="AMQP_ServerOperations.h" format="textFormat">
- <xsl:value-of select="amqp:copyright()"/>
- <xsl:text>
-#ifndef _AMQP_ServerOperations_
-#define _AMQP_ServerOperations_
-
-#include "AMQP_Constants.h"
-#include "qpid/framing/FieldTable.h"
-
-namespace qpid {
-namespace framing {
-
-class AMQP_ServerOperations
-{
- public:
- AMQP_ServerOperations() {}
- virtual ~AMQP_ServerOperations() {}
- inline u_int16_t getAmqpMajor() { return (u_int16_t)</xsl:text><xsl:value-of select="@major"/><xsl:text>; }
- inline u_int16_t getAmqpMinor() { return (u_int16_t)</xsl:text><xsl:value-of select="@minor"/><xsl:text>; }&#xA;&#xA;</xsl:text>
-
- <!-- Inner classes -->
- <xsl:for-each select="class">
- <xsl:variable name="class" select="concat(amqp:cpp-class-name(@name), 'Handler')"/>
-
- <!-- Inner class documentation & rules -->
- <xsl:if test="doc">
- <xsl:text>&#xA;/**&#xA;===== Class: </xsl:text><xsl:value-of select="$class"/><xsl:text> =====&#xA;</xsl:text>
- <xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>*/&#xA;</xsl:text>
- </xsl:if>
-
- <!-- Inner class definition -->
- <xsl:text> class </xsl:text><xsl:value-of select="$class"/><xsl:text>
- {
- public:
- /* Constructors and destructors */
- </xsl:text><xsl:value-of select="$class"/><xsl:text>() {}
- virtual ~</xsl:text><xsl:value-of select="$class"/><xsl:text>() {}
-
- /* Protocol methods */&#xA;</xsl:text>
-
- <!-- Inner class methods (only if the chassis is set to "server") -->
- <xsl:for-each select="method">
- <xsl:if test="chassis[@name='server']">
- <xsl:variable name="method" select="amqp:cpp-name(@name)"/>
-
- <!-- Inner class method documentation & rules -->
- <xsl:if test="doc">
- <xsl:text>&#xA;/**&#xA;----- Method: </xsl:text><xsl:value-of select="$class"/><xsl:text>.</xsl:text>
- <xsl:value-of select="@name"/><xsl:text> -----&#xA;</xsl:text>
- <xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>*/&#xA;</xsl:text>
- </xsl:if>
- <xsl:for-each select="rule">
- <xsl:text>&#xA;/**&#xA;</xsl:text>
- <xsl:text>Rule "</xsl:text><xsl:value-of select="@name"/><xsl:text>":&#xA;</xsl:text>
- <xsl:value-of select="amqp:process-docs(doc)"/>
- <xsl:text>*/&#xA;</xsl:text>
- </xsl:for-each>
-
- <!-- Inner class method definition -->
- <xsl:text> virtual void </xsl:text><xsl:value-of select="$method"/>
- <xsl:text>( u_int16_t channel</xsl:text>
-
- <!-- Inner class method parameter definition -->
- <xsl:if test="field">
- <xsl:text>,&#xA; </xsl:text>
- <xsl:for-each select="field">
- <xsl:variable name="domain-cpp-type" select="amqp:cpp-lookup(@domain, $domain-cpp-table)"/>
- <xsl:value-of select="concat($domain-cpp-type, amqp:cpp-arg-ref($domain-cpp-type), ' ', amqp:cpp-name(@name))"/>
- <xsl:if test="position()!=last()">
- <xsl:text>,&#xA; </xsl:text>
- </xsl:if>
- </xsl:for-each>
- </xsl:if>
- <xsl:text> ) = 0;&#xA;</xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:text> }; /* class </xsl:text><xsl:value-of select="$class"/><xsl:text> */&#xA;</xsl:text>
- </xsl:for-each>
-
- <xsl:text>&#xA;</xsl:text>
- <xsl:for-each select="class">
- <xsl:variable name="class" select="concat(amqp:cpp-class-name(@name), 'Handler')"/>
- <xsl:text> virtual AMQP_ServerOperations::</xsl:text>
- <xsl:value-of select="$class"/><xsl:text>* get</xsl:text><xsl:value-of select="$class"/>
- <xsl:text>() = 0;&#xA;</xsl:text>
- </xsl:for-each>
-
- <xsl:text>}; /* class AMQP_ServerOperations */
-
-} /* namespace framing */
-} /* namespace qpid */
-
-#endif&#xA;</xsl:text>
- </xsl:result-document>
- </xsl:template>
-
-</xsl:stylesheet>
diff --git a/cpp/etc/stylesheets/code_gen.xsl b/cpp/etc/stylesheets/code_gen.xsl
deleted file mode 100644
index 055c40e9ea..0000000000
--- a/cpp/etc/stylesheets/code_gen.xsl
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version='1.0'?>
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
- <xsl:import href="convert_0.81.xsl"/>
- <xsl:import href="amqp_consts.xsl"/>
- <xsl:import href="amqp_server_operations.xsl"/>
- <xsl:import href="amqp_client_operations.xsl"/>
- <xsl:import href="amqp_server.xsl"/>
- <xsl:import href="amqp_client.xsl"/>
- <xsl:import href="amqp_server_handler_impl.xsl"/>
- <xsl:import href="amqp_client_handler_impl.xsl"/>
-
- <xsl:output method="text" indent="yes" name="textFormat"/>
- <xsl:key name="domain-lookup" match="domains/domain" use="@domain-name"/>
-
- <xsl:template match="/">
-
- <!-- 0. Convert to 0.81 format -->
- <!--
- NOTE: The XML specification change from 0.8 to 0.81 is primarily a change to
- the XML itself, not the protocol it represents. However, at the time of this
- commit, the 0.81 specification has not been approved by the AMQP working group,
- so this converter from the 0.8 format to the 0.81 format has been included as
- a temporary measure. When the 0.81 format becomes official, then this conversion
- should be removed, and all of the templates below will revert to select=".".
-
- TODO: Remove this conversion when the new 0.81 spec is checked in.
- -->
- <xsl:variable name="format-v081">
- <xsl:apply-templates mode="do-amqp" select="amqp"/>
- </xsl:variable>
- <!-- == Uncomment this to view output for debugging ==
- <xsl:result-document href="convert_081.out">
- <xsl:copy-of select="$format-v081"/>
- </xsl:result-document>
- -->
-
- <!-- 1. Domain to C++ type lookup table -->
- <xsl:variable name="domain-cpp-table">
- <xsl:apply-templates mode="domain-table" select="$format-v081"/>
- </xsl:variable>
- <!-- == Uncomment this to view output for debugging ==
- <xsl:result-document href="domain_cpp_table.out">
- <xsl:copy-of select="$domain-cpp-table"/>
- </xsl:result-document>
- -->
-
- <!-- 2. Constant declarations (AMQP_Constants.h) -->
- <xsl:apply-templates mode="domain-consts" select="$format-v081"/>
-
- <!-- 3. Client and server handler pure virtual classes -->
- <xsl:apply-templates mode="server-operations-h" select="$format-v081">
- <xsl:with-param name="domain-cpp-table" select="$domain-cpp-table"/>
- </xsl:apply-templates>
- <xsl:apply-templates mode="client-operations-h" select="$format-v081">
- <xsl:with-param name="domain-cpp-table" select="$domain-cpp-table"/>
- </xsl:apply-templates>
-
- <!-- 4. Client and server output classes -->
- <xsl:apply-templates mode="server_h" select="$format-v081">
- <xsl:with-param name="domain-cpp-table" select="$domain-cpp-table"/>
- </xsl:apply-templates>
- <xsl:apply-templates mode="client_h" select="$format-v081">
- <xsl:with-param name="domain-cpp-table" select="$domain-cpp-table"/>
- </xsl:apply-templates>
- <xsl:apply-templates mode="server_cpp" select="$format-v081">
- <xsl:with-param name="domain-cpp-table" select="$domain-cpp-table"/>
- </xsl:apply-templates>
- <xsl:apply-templates mode="client_cpp" select="$format-v081">
- <xsl:with-param name="domain-cpp-table" select="$domain-cpp-table"/>
- </xsl:apply-templates>
-
- <!-- 5. Client and server handler stub classes -->
- <xsl:apply-templates mode="server_handler_impl_h" select="$format-v081">
- <xsl:with-param name="domain-cpp-table" select="$domain-cpp-table"/>
- </xsl:apply-templates>
- <xsl:apply-templates mode="client_handler_impl_h" select="$format-v081">
- <xsl:with-param name="domain-cpp-table" select="$domain-cpp-table"/>
- </xsl:apply-templates>
- <!-- TODO: Find a way to only run the .cpp stub generator when required, as
- running this will overwrite any stub code in existance! -->
- <xsl:apply-templates mode="server_handler_impl_cpp" select="$format-v081">
- <xsl:with-param name="domain-cpp-table" select="$domain-cpp-table"/>
- </xsl:apply-templates>
- <xsl:apply-templates mode="client_handler_impl_cpp" select="$format-v081">
- <xsl:with-param name="domain-cpp-table" select="$domain-cpp-table"/>
- </xsl:apply-templates>
-
- </xsl:template>
-
-</xsl:stylesheet>
diff --git a/cpp/etc/stylesheets/code_utils.xsl b/cpp/etc/stylesheets/code_utils.xsl
deleted file mode 100644
index d2bbea2cdc..0000000000
--- a/cpp/etc/stylesheets/code_utils.xsl
+++ /dev/null
@@ -1,213 +0,0 @@
-<?xml version='1.0'?>
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
- <!--
- ========================
- Function: amqp:copyright
- ========================
- Print out a standard Apache copyright notice and generated code warning.
- -->
- <xsl:function name="amqp:copyright">//
-//
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-//
-
-
-//
-//
-// NOTE: This file is generated directly from the AMQP XML specification.
-// === DO NOT EDIT ===
-//
-//&#xA;</xsl:function>
-
- <!--
- ==========================
- Function: amqp:upper-first
- ==========================
- Convert the first character of the parameter to upper-case
- -->
- <xsl:function name="amqp:upper-first">
- <xsl:param name="in"/>
- <xsl:value-of select="concat(upper-case(substring($in, 1, 1)), substring($in, 2))"/>
- </xsl:function>
-
- <!--
- ========================
- Function: amqp:cpp-name-1
- ========================
- Convert parameter "name" to a valid C++ identifier, finding spaces and '-'s
- in the parameter name and replacing them with '_' chars. Also check for C++
- reserved words and prefix them with '_'. No capitalization is performed.
- -->
- <xsl:function name="amqp:cpp-name-1">
- <xsl:param name="name"/>
- <xsl:choose>
- <!-- C++ reserved words. -->
- <xsl:when test="$name='delete'">delete_</xsl:when>
- <xsl:when test="$name='return'">return_</xsl:when>
- <!-- Change unsuitable C++ identifier characters. -->
- <xsl:otherwise><xsl:value-of select="translate($name, ' -', '__')"/></xsl:otherwise>
- </xsl:choose>
- </xsl:function>
-
- <!--
- =======================
- Function: amqp:cpp-name
- =======================
- Convert parameter "name" to a valid, camel cased C++ name.
- -->
- <xsl:function name="amqp:cpp-name">
- <xsl:param name="name"/>
- <xsl:value-of select="amqp:cpp-name-1(amqp:camel-case($name))"/>
- </xsl:function>
-
- <!--
- =============================
- Function: amqp:cpp-class-name
- =============================
- Convert parameter "name" to a valid C++ identifier, finding spaces and '-'s
- in the parameter name and replacing them with '_' chars. Also check for C++
- reserved words and prefix them with '_'. First letter only is capitalized.
- -->
- <xsl:function name="amqp:cpp-class-name">
- <xsl:param name="name"/>
- <xsl:value-of select="amqp:upper-first(amqp:cpp-name($name))"/>
- </xsl:function>
-
- <!--
- =========================
- Function: amqp:camel-case
- =========================
- *** NOTE: Only works with *one* of either '-' or ' '. If a name contains 2 or
- *** more of these characters, then this will break.
- Convert parameter "name" to camel case, where words are separated by ' ' or '-'
- -->
- <xsl:function name="amqp:camel-case">
- <xsl:param name="name"/>
- <xsl:choose>
- <xsl:when test="contains($name, ' ')">
- <xsl:value-of select="concat(substring-before($name, ' '), amqp:upper-first(substring-after($name, ' ')))"/>
- </xsl:when>
- <xsl:when test="contains($name, '-')">
- <xsl:value-of select="concat(substring-before($name, '-'), amqp:upper-first(substring-after($name, '-')))"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$name"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:function>
-
- <!--
- =========================
- Function: amqp:field-name
- =========================
- Get a valid field name, processing spaces and '-'s where appropriate
- -->
- <xsl:function name="amqp:field-name">
- <xsl:param name="name"/>
- <xsl:value-of select="amqp:upper-first(amqp:camel-case($name))"/>
- </xsl:function>
-
- <!--
- =======================
- Function: amqp:cpp-type
- =======================
- Map the set of simple AMQP types to C++ types. Also map the AMQP table
- domain to appropriate C++ class.
- -->
- <xsl:function name="amqp:cpp-type">
- <xsl:param name="type"/>
- <xsl:choose>
- <!-- Simple AMQP domain types -->
- <xsl:when test="$type='octet'">u_int8_t</xsl:when>
- <xsl:when test="$type='short'">u_int16_t</xsl:when>
- <xsl:when test="$type='shortstr'">string</xsl:when>
- <xsl:when test="$type='longstr'">string</xsl:when>
- <xsl:when test="$type='bit'">bool</xsl:when>
- <xsl:when test="$type='long'">u_int32_t</xsl:when>
- <xsl:when test="$type='longlong'">u_int64_t</xsl:when>
- <xsl:when test="$type='timestamp'">u_int64_t</xsl:when>
- <!-- AMQP structures -->
- <xsl:when test="$type='table'">FieldTable</xsl:when>
- <!-- Fallback: unknown type -->
- <xsl:otherwise>unknown_type /* WARNING: undefined type */</xsl:otherwise>
- </xsl:choose>
- </xsl:function>
-
- <!--
- ==========================
- Function: amqp:cpp-arg-ref
- ==========================
- Determines whether a C++ reference is required for an argument.
- -->
- <xsl:function name="amqp:cpp-arg-ref">
- <xsl:param name="type"/>
- <xsl:choose>
- <xsl:when test="$type='string'">&amp;</xsl:when>
- <xsl:when test="$type='FieldTable'">&amp;</xsl:when>
- </xsl:choose>
- </xsl:function>
-
- <!--
- =========================
- Function: amqp:cpp-lookup
- =========================
- Template and function for looking up the cpp type from the domain name.
- The template runs on a lookup table XML generated by the "domain_table"
- template in amqp_domaintypes.xsl.
- -->
- <xsl:template match="/" mode="cpp-lookup">
- <xsl:param name="domain-name"/>
- <xsl:for-each select="key('domain-lookup', $domain-name)">
- <xsl:value-of select="@cpp-type"/>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:function name="amqp:cpp-lookup">
- <xsl:param name="domain-name"/>
- <xsl:param name="domain-cpp-table"/>
- <xsl:apply-templates mode="cpp-lookup" select="$domain-cpp-table">
- <xsl:with-param name="domain-name" select="$domain-name"/>
- </xsl:apply-templates>
- </xsl:function>
-
- <!--
- =========================
- Function: amqp:cpp-lookup
- =========================
- Template and function for processing the possibly multiple <doc> elements
- within a node.
- -->
- <xsl:template match="doc" mode="process-doc-elts">
- <xsl:for-each select=".">
- <xsl:choose>
- <xsl:when test=".[@type='grammar']"><xsl:value-of select="."/></xsl:when>
- <xsl:when test=".[@type='scenario']"><xsl:value-of select="concat('&#xA;Test Scenario: ', normalize-space(.))"/></xsl:when>
- <xsl:otherwise><xsl:value-of select="normalize-space(.)"/></xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- </xsl:template>
-
- <xsl:function name="amqp:process-docs">
- <xsl:param name="doc-elts"/>
- <xsl:apply-templates mode="process-doc-elts" select="$doc-elts"/>
- </xsl:function>
-
-
-</xsl:stylesheet>
-
diff --git a/cpp/etc/stylesheets/convert_0.81.xsl b/cpp/etc/stylesheets/convert_0.81.xsl
deleted file mode 100644
index c9e969661e..0000000000
--- a/cpp/etc/stylesheets/convert_0.81.xsl
+++ /dev/null
@@ -1,427 +0,0 @@
-<?xml version='1.0'?>
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
-<xsl:template match="/">
- <xsl:apply-templates select="/" mode="do-amqp"/>
-</xsl:template>
-
-<!-- ======
- <amqp>
- ====== -->
-<xsl:template match="amqp" mode="do-amqp">
-
-<!-- <xsl:text>&#xA;</xsl:text> -->
-<xsl:element name= "amqp">
-<xsl:attribute name="major"><xsl:value-of select="@major"/></xsl:attribute>
-<xsl:attribute name="minor"><xsl:value-of select="@minor"/></xsl:attribute>
-<xsl:attribute name="port"><xsl:value-of select="@port"/></xsl:attribute>
-<xsl:attribute name="comment"><xsl:value-of select="@comment"/></xsl:attribute>
-<xsl:text>&#xA;</xsl:text>
-
-<!-- constant elements -->
-<xsl:text>&#xA;</xsl:text>
-<xsl:text> </xsl:text><xsl:comment>
- ====================
- Constants
- ====================
- </xsl:comment><xsl:text>&#xA;</xsl:text>
-<xsl:text>&#xA;</xsl:text>
-<xsl:apply-templates select="constant" mode="do-constant">
-<xsl:with-param name="indent" select="' '"/>
-</xsl:apply-templates>
-
-<!-- domain elements -->
-<xsl:text>&#xA;</xsl:text>
-<xsl:text> </xsl:text><xsl:comment>
- ====================
- Domains
- ====================
- </xsl:comment><xsl:text>&#xA;</xsl:text>
-<xsl:text>&#xA;</xsl:text>
-<xsl:apply-templates select="domain" mode="do-domain">
-<xsl:with-param name="indent" select="' '"/>
-</xsl:apply-templates>
-
-<!-- required elementary domain definition elements added into v0.81 -->
-<xsl:text>&#xA;</xsl:text>
-<xsl:text> </xsl:text><xsl:comment> Elementary domains </xsl:comment><xsl:text>&#xA;</xsl:text>
-<xsl:text> </xsl:text><xsl:element name="domain">
- <xsl:attribute name="name">bit</xsl:attribute>
- <xsl:attribute name="type">bit</xsl:attribute>
- <xsl:attribute name="label">single bit</xsl:attribute>
-</xsl:element><xsl:text>&#xA;</xsl:text>
-<xsl:text> </xsl:text><xsl:element name="domain">
- <xsl:attribute name="name">octet</xsl:attribute>
- <xsl:attribute name="type">octet</xsl:attribute>
- <xsl:attribute name="label">single octet</xsl:attribute>
-</xsl:element><xsl:text>&#xA;</xsl:text>
-<xsl:text> </xsl:text><xsl:element name="domain">
- <xsl:attribute name="name">short</xsl:attribute>
- <xsl:attribute name="type">short</xsl:attribute>
- <xsl:attribute name="label">16-bit integer</xsl:attribute>
-</xsl:element><xsl:text>&#xA;</xsl:text>
-<xsl:text> </xsl:text><xsl:element name="domain">
- <xsl:attribute name="name">long</xsl:attribute>
- <xsl:attribute name="type">long</xsl:attribute>
- <xsl:attribute name="label">32-bit integer</xsl:attribute>
-</xsl:element><xsl:text>&#xA;</xsl:text>
-<xsl:text> </xsl:text><xsl:element name="domain">
- <xsl:attribute name="name">longlong</xsl:attribute>
- <xsl:attribute name="type">longlong</xsl:attribute>
- <xsl:attribute name="label">64-bit integer</xsl:attribute>
-</xsl:element><xsl:text>&#xA;</xsl:text>
-<xsl:text> </xsl:text><xsl:element name="domain">
- <xsl:attribute name="name">shortstr</xsl:attribute>
- <xsl:attribute name="type">shortstr</xsl:attribute>
- <xsl:attribute name="label">short string</xsl:attribute>
-</xsl:element><xsl:text>&#xA;</xsl:text>
-<xsl:text> </xsl:text><xsl:element name="domain">
- <xsl:attribute name="name">longstr</xsl:attribute>
- <xsl:attribute name="type">longstr</xsl:attribute>
- <xsl:attribute name="label">long string</xsl:attribute>
-</xsl:element><xsl:text>&#xA;</xsl:text>
-<xsl:text> </xsl:text><xsl:element name="domain">
- <xsl:attribute name="name">timestamp</xsl:attribute>
- <xsl:attribute name="type">timestamp</xsl:attribute>
- <xsl:attribute name="label">64-bit timestamp</xsl:attribute>
-</xsl:element><xsl:text>&#xA;</xsl:text>
-<xsl:text> </xsl:text><xsl:element name="domain">
- <xsl:attribute name="name">table</xsl:attribute>
- <xsl:attribute name="type">table</xsl:attribute>
- <xsl:attribute name="label">field table</xsl:attribute>
-</xsl:element><xsl:text>&#xA;</xsl:text>
-
-<!-- class elements -->
-<xsl:text>&#xA;</xsl:text>
-<xsl:text> </xsl:text><xsl:comment>
- ====================
- Classes
- ====================
- </xsl:comment><xsl:text>&#xA;</xsl:text>
-<xsl:apply-templates select="class" mode="do-class">
-<xsl:with-param name="indent" select="' '"/>
-</xsl:apply-templates>
-
-</xsl:element><!-- amqp -->
-<!-- <xsl:text>&#xA;</xsl:text> -->
-</xsl:template>
-
-<!-- ==========
- <constant>
- ========== -->
-<xsl:template match="constant" mode="do-constant">
-<xsl:param name="indent"/>
-<xsl:variable name="constant" select="translate(@name, ' ', '-')"/>
-
-<xsl:value-of select="$indent"/><xsl:element name="constant">
-<xsl:attribute name="name"><xsl:value-of select="$constant"/></xsl:attribute>
-<xsl:attribute name="value"><xsl:value-of select="@value"/></xsl:attribute>
-<xsl:if test="@class">
-<xsl:attribute name="class"><xsl:value-of select="translate(@class, ' ', '-')"/></xsl:attribute>
-</xsl:if>
-
-<!-- If there is content, place in child <doc> element -->
-<xsl:if test="string-length(.) > 0">
-<xsl:text>&#xA;</xsl:text>
-<xsl:value-of select="$indent"/><xsl:text> </xsl:text><xsl:element name="doc"><xsl:text>&#xA;</xsl:text>
-<xsl:value-of select="$indent"/><xsl:text> </xsl:text><xsl:value-of select="normalize-space(.)"/><xsl:text>&#xA;</xsl:text>
-<xsl:value-of select="$indent"/><xsl:text> </xsl:text></xsl:element><xsl:text>&#xA;</xsl:text>
-<xsl:value-of select="$indent"/>
-</xsl:if>
-
-</xsl:element><xsl:text>&#xA;</xsl:text>
-
-</xsl:template>
-
-<!-- ========
- <domain>
- ======== -->
-<xsl:template match="domain" mode="do-domain">
-<xsl:param name="indent"/>
-<xsl:variable name="domain" select="translate(@name, ' ', '-')"/>
-
-<xsl:value-of select="$indent"/><xsl:element name="domain">
-<xsl:attribute name="name"><xsl:value-of select="$domain"/></xsl:attribute>
-<xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
-<xsl:if test="doc|assert|rule"><xsl:text>&#xA;</xsl:text></xsl:if>
-
-<!-- doc elements -->
-<xsl:apply-templates select="doc" mode="do-doc">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-</xsl:apply-templates>
-
-<!-- assert elements -->
-<xsl:apply-templates select="assert" mode="do-assert">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-</xsl:apply-templates>
-
-<!-- rule elements -->
-<xsl:apply-templates select="rule" mode="do-rule">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-<xsl:with-param name="label" select="$domain"/>
-</xsl:apply-templates>
-
-<xsl:if test="doc|assert|rule"><xsl:value-of select="$indent"/></xsl:if></xsl:element><xsl:text>&#xA;</xsl:text>
-
-</xsl:template>
-
-<!-- ========
- <class>
- ======== -->
-
-<xsl:template match="class" mode="do-class">
-<xsl:param name="indent"/>
-<xsl:variable name="class" select="translate(@name, ' ', '-')"/>
-
-<!-- Ignore class test - removed from 0.81 -->
-<xsl:if test="not($class = 'test')">
-<xsl:text>&#xA;</xsl:text><xsl:value-of select="$indent"/><xsl:comment><xsl:value-of select="concat(' == Class: ', $class, ' == ')"/></xsl:comment><xsl:text>&#xA;</xsl:text>
-<xsl:value-of select="$indent"/><xsl:element name="class">
-<xsl:attribute name="name"><xsl:value-of select="$class"/></xsl:attribute>
-<xsl:attribute name="handler"><xsl:value-of select="@handler"/></xsl:attribute>
-<xsl:attribute name="index"><xsl:value-of select="@index"/></xsl:attribute>
-<xsl:if test="doc|chassis|rule|field|method"><xsl:text>&#xA;</xsl:text></xsl:if>
-
-<!-- doc elements -->
-<xsl:apply-templates select="doc" mode="do-doc">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-<xsl:with-param name="label" select="$class"/>
-</xsl:apply-templates>
-
-<!-- chassis elements -->
-<xsl:apply-templates select="chassis" mode="do-chassis">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-</xsl:apply-templates>
-
-<!-- rule elements -->
-<xsl:apply-templates select="rule" mode="do-rule">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-<xsl:with-param name="label" select="$class"/>
-</xsl:apply-templates>
-
-<!-- field elements -->
-<xsl:apply-templates select="field" mode="do-field">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-<xsl:with-param name="label" select="$class"/>
-</xsl:apply-templates>
-
-<!-- method elements -->
-<xsl:apply-templates select="method" mode="do-method">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-<xsl:with-param name="label" select="$class"/>
-</xsl:apply-templates>
-
-<xsl:if test="doc|chassis|rule|field|method"><xsl:value-of select="$indent"/></xsl:if></xsl:element><xsl:text>&#xA;</xsl:text>
-</xsl:if>
-</xsl:template>
-
-<!-- ========
- <method>
- ======== -->
-
-<xsl:template match="method" mode="do-method">
-<xsl:param name="indent"/>
-<xsl:param name="label"/>
-<xsl:variable name="method" select="translate(@name, ' ', '-')"/>
-
-<xsl:text>&#xA;</xsl:text><xsl:value-of select="$indent"/><xsl:comment><xsl:value-of select="concat(' == Method: ', $label, '.', $method, ' == ')"/></xsl:comment><xsl:text>&#xA;</xsl:text>
-<xsl:value-of select="$indent"/><xsl:element name="method">
-<xsl:attribute name="name"><xsl:value-of select="$method"/></xsl:attribute>
-<xsl:if test="@synchronous"><xsl:attribute name="synchronous"><xsl:value-of select="@synchronous"/></xsl:attribute></xsl:if>
-<xsl:attribute name="index"><xsl:value-of select="@index"/></xsl:attribute>
-<xsl:if test="doc|chassis|response|rule|field"><xsl:text>&#xA;</xsl:text></xsl:if>
-
-<!-- doc elements -->
-<xsl:apply-templates select="doc" mode="do-doc">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-<xsl:with-param name="label" select="concat($label, '.', $method)"/>
-</xsl:apply-templates>
-
-<!-- chassis and response elements -->
-<xsl:apply-templates select="chassis" mode="do-chassis">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-</xsl:apply-templates>
-<xsl:apply-templates select="response" mode="do-response">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-</xsl:apply-templates>
-
-<!-- rule elements -->
-<xsl:apply-templates select="rule" mode="do-rule">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-<xsl:with-param name="label" select="concat($label, '.', $method)"/>
-</xsl:apply-templates>
-
-<!-- field elements -->
-<xsl:apply-templates select="field" mode="do-field">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-<xsl:with-param name="label" select="concat($label, '.', $method)"/>
-</xsl:apply-templates>
-
-<xsl:if test="doc|chassis|response|rule|field"><xsl:value-of select="$indent"/></xsl:if></xsl:element><xsl:text>&#xA;</xsl:text>
-
-</xsl:template>
-
-<!-- ========
- <field>
- ======== -->
-
-<xsl:template match="field" mode="do-field">
-<xsl:param name="indent"/>
-<xsl:param name="label"/>
-<xsl:variable name="field" select="translate(@name, ' ', '-')"/>
-
-<xsl:value-of select="$indent"/><xsl:element name="field">
-<xsl:attribute name="name"><xsl:value-of select="$field"/></xsl:attribute>
-<xsl:if test="@type">
-<xsl:attribute name="domain"><xsl:value-of select="translate(@type, ' ', '-')"/></xsl:attribute>
-</xsl:if>
-<xsl:if test="@domain">
-<xsl:attribute name="domain"><xsl:value-of select="translate(@domain, ' ', '-')"/></xsl:attribute>
-</xsl:if>
-<xsl:if test="doc|rule|assert"><xsl:text>&#xA;</xsl:text></xsl:if>
-
-<!-- doc elements -->
-<xsl:apply-templates select="doc" mode="do-doc">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-<xsl:with-param name="label" select="concat($label, '.', $field)"/>
-</xsl:apply-templates>
-
-<!-- rule elements -->
-<xsl:apply-templates select="rule" mode="do-rule">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-<xsl:with-param name="label" select="concat($label, '.', $field)"/>
-</xsl:apply-templates>
-
-<!-- assert elements -->
-<xsl:apply-templates select="assert" mode="do-assert">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-</xsl:apply-templates>
-
-<xsl:if test="doc|rule|assert"><xsl:value-of select="$indent"/></xsl:if></xsl:element><xsl:text>&#xA;</xsl:text>
-
-</xsl:template>
-
-<!-- ========
- <assert>
- ======== -->
-<xsl:template match="assert" mode="do-assert">
-<xsl:param name="indent"/>
-
-<xsl:value-of select="$indent"/><xsl:element name="assert">
-<xsl:attribute name="check"><xsl:value-of select="@check"/></xsl:attribute>
-<xsl:if test="@value"><xsl:attribute name="value"><xsl:value-of select="@value"/></xsl:attribute></xsl:if>
-<xsl:if test="@rule"><xsl:attribute name="rule"><xsl:value-of select="@rule"/></xsl:attribute></xsl:if>
-
-<xsl:apply-templates select="doc" mode="do-doc">
-<xsl:with-param name="indent" select="concat($indent, ' ')"/>
-</xsl:apply-templates>
-
-</xsl:element><xsl:text>&#xA;</xsl:text>
-
-</xsl:template>
-
-<!-- ========
- <rule>
- ======== -->
-<xsl:template match="rule" mode="do-rule">
-<xsl:param name="indent"/>
-<xsl:param name="label"/>
-
-<xsl:value-of select="$indent"/><xsl:element name="rule">
-<xsl:attribute name="name">rule_<xsl:value-of select="$label"/>_<xsl:number format="01"/></xsl:attribute>
-
-<!-- If there is content, place in child <doc> element -->
-
-<xsl:if test="string-length(.) > 0">
-<xsl:text>&#xA;</xsl:text>
-<xsl:value-of select="$indent"/><xsl:text> </xsl:text><xsl:element name="doc"><xsl:text>&#xA;</xsl:text>
-<xsl:value-of select="$indent"/><xsl:text> </xsl:text><xsl:value-of select="normalize-space(.)"/><xsl:text>&#xA;</xsl:text>
-<xsl:value-of select="$indent"/><xsl:text> </xsl:text></xsl:element><xsl:text>&#xA;</xsl:text>
-<xsl:value-of select="$indent"/>
-</xsl:if>
-
-</xsl:element><xsl:text>&#xA;</xsl:text>
-
-</xsl:template>
-
-<!-- =========
- <chassis>
- ========= -->
-<xsl:template match="chassis" mode="do-chassis">
-<xsl:param name="indent"/>
-
-<xsl:value-of select="$indent"/><xsl:element name="chassis">
-<xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
-<xsl:attribute name="implement"><xsl:value-of select="@implement"/></xsl:attribute>
-</xsl:element><xsl:text>&#xA;</xsl:text>
-
-</xsl:template>
-
-<!-- ==========
- <response>
- ========== -->
-<xsl:template match="response" mode="do-response">
-<xsl:param name="indent"/>
-
-<xsl:value-of select="$indent"/><xsl:element name="response">
-<xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
-</xsl:element><xsl:text>&#xA;</xsl:text>
-
-</xsl:template>
-
-<!-- =====
- <doc>
- ===== -->
-<xsl:template match="doc" mode="do-doc">
-<xsl:param name="indent"/>
-<xsl:param name="label"/>
-
-<!-- Handle cases of <doc name="rule>...</doc>: turn them into <rule><doc>...</doc></rule> -->
-<xsl:if test="@name = 'rule'">
-<xsl:value-of select="$indent"/><xsl:element name="rule">
-<xsl:if test="@test"><xsl:attribute name="name"><xsl:value-of select="@test"/></xsl:attribute></xsl:if>
-<xsl:if test="not(@test)"><xsl:attribute name="name">doc_rule_<xsl:value-of select="$label"/>_<xsl:number format="01"/></xsl:attribute></xsl:if>
-<xsl:text>&#xA;</xsl:text>
-<xsl:value-of select="concat($indent, ' ')"/><xsl:element name="doc"><xsl:text>&#xA;</xsl:text>
-<xsl:value-of select="concat($indent, ' ')"/><xsl:text> </xsl:text><xsl:value-of select="normalize-space(.)"/><xsl:text>&#xA;</xsl:text>
-<xsl:value-of select="concat($indent, ' ')"/></xsl:element><xsl:text>&#xA;</xsl:text>
-<xsl:value-of select="$indent"/></xsl:element><xsl:text>&#xA;</xsl:text>
-</xsl:if>
-
-<!-- Normal <doc>...</doc> elements -->
-<xsl:if test="not(@name = 'rule')">
-<xsl:value-of select="$indent"/><xsl:element name="doc">
-<xsl:if test="@name = 'grammar'">
-<xsl:attribute name="type">grammar</xsl:attribute>
-<xsl:value-of select="$indent"/><xsl:text> </xsl:text><xsl:value-of select="."/>
-</xsl:if>
-<xsl:if test="not(@name = 'grammar')">
-<xsl:text>&#xA;</xsl:text>
-<xsl:value-of select="$indent"/><xsl:text> </xsl:text><xsl:value-of select="normalize-space(.)"/><xsl:text>&#xA;</xsl:text>
-</xsl:if>
-<xsl:value-of select="$indent"/></xsl:element><xsl:text>&#xA;</xsl:text>
-</xsl:if>
-
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/cpp/etc/stylesheets/cpp.xsl b/cpp/etc/stylesheets/cpp.xsl
deleted file mode 100644
index a9ab30e078..0000000000
--- a/cpp/etc/stylesheets/cpp.xsl
+++ /dev/null
@@ -1,335 +0,0 @@
-<?xml version='1.0'?>
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
-<!-- this class contains the templates for generating C++ source code for a given framing model -->
-
-<xsl:import href="utils.xsl"/>
-<xsl:output method="text" indent="yes" name="textFormat"/>
-
-<xsl:template match="/">
- <xsl:apply-templates mode="generate-multi" select="frames"/>
- <xsl:apply-templates mode="method-list-header" select="frames"/>
- <xsl:apply-templates mode="method-list-source" select="frames"/>
- <xsl:apply-templates mode="method-interface" select="frames"/>
-</xsl:template>
-
-<!-- processes all frames outputting the classes in a single stream -->
-<xsl:template match="frames" mode="generate-single">
- <xsl:result-document href="amqp_methods.h" format="textFormat">
-#include "qpid/framing/amqp_framing.h"
- <xsl:for-each select="frame">
- <xsl:call-template name="generate-class">
- <xsl:with-param name="f" select="."/>
- </xsl:call-template>
- </xsl:for-each>
- </xsl:result-document>
-</xsl:template>
-
-<!-- generates seperate file for each class/frame -->
-<xsl:template match="frame" mode="generate-multi">
- <xsl:variable name="uri" select="concat(@name, '.h')"/>
- <xsl:result-document href="{$uri}" format="textFormat">
-#include "qpid/framing/amqp_types.h"
-#include "AMQP_ServerOperations.h"
-#include "qpid/framing/AMQMethodBody.h"
-#include "qpid/framing/Buffer.h"
-#include "qpid/framing/FieldTable.h"
-
-#ifndef _<xsl:value-of select="@name"/>_
-#define _<xsl:value-of select="@name"/>_
-
-namespace qpid {
-namespace framing {
-
- <xsl:call-template name="generate-class">
- <xsl:with-param name="f" select="."/>
- </xsl:call-template>
-}
-}
-
-#endif
-
-</xsl:result-document>
-</xsl:template>
-
-
-<!-- main class generation template -->
-<xsl:template name="generate-class">
- <xsl:param name="f"/>
-/**
- * This class is autogenerated, do not modify. [From <xsl:value-of select="$f/parent::frames/@protocol"/>]
- */
-class <xsl:value-of select="$f/@name"/> : virtual public AMQMethodBody
-{
- <xsl:for-each select="$f/field">
- <xsl:value-of select="@cpp-type"/>
- <xsl:text> </xsl:text>
- <xsl:value-of select="@name"/>;
- </xsl:for-each>
-
-public:
- typedef boost::shared_ptr&lt;<xsl:value-of select="$f/@name"/>&gt; shared_ptr;
-
- virtual ~<xsl:value-of select="$f/@name"/>() {}
-
- <xsl:for-each select="$f/field">
- inline <xsl:value-of select="concat(@cpp-arg-type, ' get', amqp:upper-first(@name), '() { return ', @name)"/>; }
- </xsl:for-each>
-
-
- inline void print(std::ostream&amp; out) const{
- out &lt;&lt; "<xsl:value-of select="$f/@declaration_name"/>"
- <xsl:for-each select="$f/field">
- <xsl:text> &lt;&lt; ", </xsl:text>
- <xsl:value-of select="@name"/>="&lt;&lt;
- <xsl:value-of select="@name"/>
- </xsl:for-each>
- ;
- }
-
- inline u_int16_t amqpClassId() const {
- return <xsl:value-of select="$f/@class-id"/>;
- }
-
- inline u_int16_t amqpMethodId() const {
- return <xsl:value-of select="$f/@method-id"/>;
- }
-
- inline u_int32_t bodySize() const {
- <xsl:choose>
- <xsl:when test="$f/field">
- return
- <xsl:for-each select="$f/field">
- <xsl:if test="position() != 1">+
- </xsl:if>
- <xsl:value-of select="amqp:field-length(.)"/>
- </xsl:for-each>
- ;
- </xsl:when>
- <xsl:otherwise>return 0;</xsl:otherwise>
- </xsl:choose>
- }
-
- <xsl:if test="@server='true'">
- inline void invoke(AMQP_ServerOperations&amp; target, u_int16_t channel) {
- <xsl:if test="field">
- <xsl:value-of select="concat('target.get', amqp:upper-first(parent::class/@name), 'Handler()->', @invocation_name, '(channel, ')"/>
- <xsl:value-of select="$f/field/@name" separator=", "/>);
- </xsl:if>
- <xsl:if test="not(field)">
- <xsl:value-of select="concat('target.get', amqp:upper-first(parent::class/@name), 'Handler()->', @invocation_name, '(channel)')"/>;
- </xsl:if>
- }
- </xsl:if>
-
- inline void encodeContent(Buffer&amp; <xsl:if test="$f/field">buffer</xsl:if>) const
- {
- <xsl:if test="$f/field[@type='bit']">
- u_int8_t flags = 0;
- <xsl:for-each select="$f/field[@type='bit']">
- <xsl:value-of select="concat('flags |= ', @name,' &lt;&lt; (', @boolean-index, ' - 1)')"/>;
- </xsl:for-each>
- </xsl:if>
- <xsl:for-each select="$f/field">
- <xsl:if test="@type != 'bit'">
- <xsl:value-of select="amqp:encoder(.)"/>;
- </xsl:if>
- <xsl:if test="@type = 'bit' and @boolean-index = 1">
- <xsl:text>buffer.putOctet(flags)</xsl:text>;
- </xsl:if>
- </xsl:for-each>
- }
-
- inline void decodeContent(Buffer&amp; <xsl:if test="$f/field">buffer</xsl:if>)
- {
- <xsl:for-each select="$f/field">
- <xsl:choose>
- <xsl:when test="@type = 'bit' and @boolean-index = 1">
- <xsl:text>u_int8_t flags = buffer.getOctet()</xsl:text>;
- <xsl:value-of select="amqp:decoder(.)"/>;
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="amqp:decoder(.)"/>;
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- }
-
- <xsl:if test="$f/field">
- <!-- only generate overloaded constructor if there are fields in this method -->
- inline <xsl:value-of select="$f/@name"/>(<xsl:value-of select="$f/field/concat(@cpp-arg-type, ' _', @name)" separator=", "/>) : <xsl:value-of select="$f/field/concat(@name, '(_', @name, ')')" separator=", "/>
- {
- }
- </xsl:if>
-
- inline <xsl:value-of select="$f/@name"/>()
- {
- }
-};
-
-</xsl:template>
-
-<xsl:template match="frames" mode="method-list-header">
-<xsl:result-document href="amqp_methods.h" format="textFormat">
-/**
- * This file is autogenerated, do not modify.
- */
-
-#ifndef AMQ_METHODS_H
-#define AMQ_METHODS_H
-
- <xsl:for-each select="class/frame">
-#include "<xsl:value-of select="@name"/>.h"
- </xsl:for-each>
-
-namespace qpid {
-namespace framing {
-
- <xsl:for-each select="class/frame">
-const <xsl:value-of select="concat(@name, ' ', @declaration_name)"/>;
- </xsl:for-each>
-
-AMQMethodBody* createAMQMethodBody(u_int16_t classId, u_int16_t methodId);
-
-}
-}
-
-#endif
-</xsl:result-document>
-</xsl:template>
-
-<xsl:template match="frames" mode="method-list-source">
- <xsl:result-document href="amqp_methods.cpp" format="textFormat">
-#include "amqp_methods.h"
-#include "qpid/QpidError.h"
-
-namespace qpid {
-namespace framing {
-/**
- * This method is autogenerated, do not modify.
- */
-AMQMethodBody* createAMQMethodBody(u_int16_t classId, u_int16_t methodId){
- switch(classId * 1000 + methodId)
- {
- <xsl:for-each select="class/frame">
- <xsl:text>case </xsl:text>
- <xsl:value-of select="@class-id"/>
- <xsl:text> * 1000 + </xsl:text>
- <xsl:value-of select="@method-id"/>
- <xsl:text>: return new </xsl:text>
- <xsl:value-of select="@name"/>();
- </xsl:for-each>
- }
- THROW_QPID_ERROR(FRAMING_ERROR, "Unknown method");
-}
-
-}
-}
-</xsl:result-document>
-</xsl:template>
-
-<xsl:template match="frames" mode="generate-interface">
- <xsl:result-document href="AMQPServer.h" format="textFormat">
-#include "qpid/framing/amqp_types.h"
-#include "qpid/framing/FieldTable.h"
-
-#ifndef _AMQPServer_
-#define _AMQPServer_
-
-namespace qpid {
-namespace framing {
-
-class AMQPServer
-{
- public:
-
- <xsl:for-each select="class">
- class <xsl:value-of select="concat(amqp:upper-first(@name), 'Handler')"/>{
- public:
- <xsl:for-each select="frame[@server='true']">
- <xsl:if test="field">
- virtual void <xsl:value-of select="@invocation_name"/>(u_int16_t channel, <xsl:value-of select="field/concat(@cpp-arg-type, ' ', @name)" separator=", "/>) = 0;
- </xsl:if>
- <xsl:if test="not(field)">
- virtual void <xsl:value-of select="@invocation_name"/>(u_int16_t channel) = 0;
- </xsl:if>
- </xsl:for-each>
- virtual ~<xsl:value-of select="concat(amqp:upper-first(@name), 'Handler')"/>(){}
- };
-
- virtual <xsl:value-of select="concat(amqp:upper-first(@name), 'Handler* get', amqp:upper-first(@name), 'Handler')"/>() = 0;
-
- </xsl:for-each>
- virtual ~AMQPServer(){}
-};
-
-}
-}
-
-#endif
-</xsl:result-document>
-
- <xsl:result-document href="AMQPClient.h" format="textFormat">
-#include "qpid/framing/amqp_types.h"
-#include "qpid/framing/FieldTable.h"
-
-#ifndef _AMQPClient_
-#define _AMQPClient_
-
-namespace qpid {
-namespace framing {
-
-class AMQPClient
-{
- public:
-
- <xsl:for-each select="class">
- class <xsl:value-of select="concat(amqp:upper-first(@name), 'Handler')"/>{
- public:
- <xsl:for-each select="frame[@client='true']">
- <xsl:if test="field">
- virtual void <xsl:value-of select="@invocation_name"/>(u_int16_t channel, <xsl:value-of select="field/concat(@cpp-arg-type, ' ', @name)" separator=", "/>) = 0;
- </xsl:if>
- <xsl:if test="not(field)">
- virtual void <xsl:value-of select="@invocation_name"/>(u_int16_t channel) = 0;
- </xsl:if>
- </xsl:for-each>
- virtual ~<xsl:value-of select="concat(amqp:upper-first(@name), 'Handler')"/>(){}
- };
-
- virtual <xsl:value-of select="concat(amqp:upper-first(@name), 'Handler* get', amqp:upper-first(@name), 'Handler')"/>() = 0;
-
- </xsl:for-each>
-
- virtual ~AMQPClient(){}
-};
-
-}
-}
-
-#endif
-</xsl:result-document>
-
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/cpp/etc/stylesheets/framing.xsl b/cpp/etc/stylesheets/framing.xsl
deleted file mode 100644
index baf643d682..0000000000
--- a/cpp/etc/stylesheets/framing.xsl
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version='1.0'?>
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
-<xsl:import href="prepare1.xsl"/>
-<xsl:import href="prepare2.xsl"/>
-<xsl:import href="prepare3.xsl"/>
-<xsl:import href="cpp.xsl"/>
-
-<xsl:output indent="yes"/>
-<xsl:output method="text" indent="yes" name="textFormat"/>
-
-<xsl:template match="/">
- <xsl:variable name="prepare1">
- <xsl:apply-templates mode="prepare1" select="."/>
- </xsl:variable>
-
- <xsl:variable name="prepare2">
- <xsl:apply-templates mode="prepare2" select="$prepare1"/>
- </xsl:variable>
-
- <xsl:variable name="model">
- <xsl:apply-templates mode="prepare3" select="$prepare2"/>
- </xsl:variable>
-
- <xsl:apply-templates mode="generate-multi" select="$model"/>
- <xsl:apply-templates mode="method-list-header" select="$model"/>
- <xsl:apply-templates mode="method-list-source" select="$model"/>
-
- <!-- these interfaces are now generated by the new scripts from kim -->
- <!-- e.g. those of the form amqp-server/client-*.xsl -->
- <!-- xsl:apply-templates mode="generate-interface" select="$model"/ -->
-
- <!-- dump out the intermediary files for debugging -->
- <!--
- <xsl:result-document href="prepare1.out">
- <xsl:copy-of select="$prepare1"/>
- </xsl:result-document>
-
- <xsl:result-document href="prepare2.out">
- <xsl:copy-of select="$prepare2"/>
- </xsl:result-document>
-
- <xsl:result-document href="model.out">
- <xsl:copy-of select="$model"/>
- </xsl:result-document>
- -->
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/cpp/etc/stylesheets/prepare1.xsl b/cpp/etc/stylesheets/prepare1.xsl
deleted file mode 100644
index e59a4f5267..0000000000
--- a/cpp/etc/stylesheets/prepare1.xsl
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version='1.0'?>
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
-<xsl:import href="utils.xsl"/>
-
-<xsl:output indent="yes"/>
-<xsl:param name="asl_base"/>
-
-<!-- pre-process, phase 1 -->
-
-<xsl:template match="/">
- <xsl:apply-templates select="protocol" mode="prepare1"/>
-</xsl:template>
-
-<xsl:template match="amqp" mode="prepare1">
- <frames>
- <xsl:attribute name="protocol">
- <xsl:value-of select="@comment"/>
- <xsl:text> (</xsl:text>
- <xsl:text>major=</xsl:text><xsl:value-of select="@major"/>
- <xsl:text>, minor=</xsl:text><xsl:value-of select="@minor"/>
- <xsl:text>)</xsl:text>
- </xsl:attribute>
- <xsl:apply-templates mode="prepare1" select="inherit"/>
- <xsl:apply-templates mode="prepare1" select="include"/>
- <xsl:apply-templates mode="prepare1" select="domain"/>
- <xsl:apply-templates mode="prepare1" select="class"/>
- </frames>
-</xsl:template>
-
-<xsl:template match="include" mode="prepare1">
- <xsl:if test="@filename != 'asl_constants.asl'">
- <!-- skip asl_constants.asl, we don't need it and it is not well formed so causes error warnings -->
- <xsl:apply-templates select="document(@filename)" mode="prepare1"/>
- </xsl:if>
-</xsl:template>
-
-<xsl:template match="inherit" mode="prepare1">
- <xsl:variable name="ibase" select="concat('file:///', $asl_base, '/', @name, '.asl')"/>
- <xsl:choose>
- <xsl:when test="document($ibase)">
- <xsl:apply-templates select="document($ibase)" mode="prepare1"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:message>
- Could not inherit from <xsl:value-of select="$ibase"/>; file not found.
- </xsl:message>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template match="class[@index]" mode="prepare1">
-<xsl:if test="not(@name = 'test')">
- <class>
- <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
- <xsl:apply-templates select="method" mode="prepare1"/>
- </class>
-</xsl:if>
-</xsl:template>
-
-<xsl:template match="method" mode="prepare1">
- <xsl:if test="parent::class[@index]"><!-- there is a template class that has no index, which we want to skip -->
- <frame>
- <xsl:attribute name="name"><xsl:value-of select="amqp:class-name(parent::class/@name, @name)"/></xsl:attribute>
- <xsl:attribute name="class-id"><xsl:value-of select="parent::class/@index"/></xsl:attribute>
- <xsl:if test="@index">
- <xsl:attribute name="method-id"><xsl:value-of select="@index"/></xsl:attribute>
- </xsl:if>
- <xsl:if test="not(@index)">
- <xsl:attribute name="method-id"><xsl:number count="method"/></xsl:attribute>
- </xsl:if>
- <xsl:attribute name="invocation_name">
- <xsl:value-of select="amqp:keyword-check(amqp:field-name(@name))"/>
- </xsl:attribute>
- <xsl:attribute name="declaration_name">
- <xsl:value-of select="amqp:method-name(parent::class/@name, @name)"/>
- </xsl:attribute>
- <xsl:if test="chassis[@name='client']">
- <xsl:attribute name="client">true</xsl:attribute>
- </xsl:if>
- <xsl:if test="chassis[@name='server']">
- <xsl:attribute name="server">true</xsl:attribute>
- </xsl:if>
- <xsl:apply-templates select="field" mode="prepare1"/>
- </frame>
- </xsl:if>
-</xsl:template>
-
-<xsl:template match="domain" mode="prepare1">
- <domain>
- <name><xsl:value-of select="@name"/></name>
- <type><xsl:value-of select="@type"/></type>
- </domain>
-</xsl:template>
-
-<xsl:template match="field" mode="prepare1">
- <field>
- <xsl:copy-of select="@name"/>
- <xsl:copy-of select="@type"/>
- <xsl:copy-of select="@domain"/>
- </field>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/cpp/etc/stylesheets/prepare2.xsl b/cpp/etc/stylesheets/prepare2.xsl
deleted file mode 100644
index 1425c71195..0000000000
--- a/cpp/etc/stylesheets/prepare2.xsl
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version='1.0'?>
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
-<xsl:import href="utils.xsl"/>
-
-<xsl:output indent="yes"/>
-
-<!-- pre-process, phase 2 -->
-
-<xsl:key name="domain-lookup" match="domain" use="name"/>
-
-<xsl:template match="/">
- <xsl:apply-templates mode="prepare2" select="frames"/>
-</xsl:template>
-
-<xsl:template match="field[@domain]" mode="prepare2">
- <field>
- <xsl:variable name="t1" select="key('domain-lookup', @domain)/type"/>
- <xsl:attribute name="name"><xsl:value-of select="amqp:field-name(@name)"/></xsl:attribute>
- <xsl:attribute name="type"><xsl:value-of select="$t1"/></xsl:attribute>
- </field>
-</xsl:template>
-
-<xsl:template match="field[@type]" mode="prepare2">
- <field>
- <xsl:attribute name="name"><xsl:value-of select="amqp:field-name(@name)"/></xsl:attribute>
- <xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
- </field>
-</xsl:template>
-
-<xsl:template match="frames" mode="prepare2">
- <frames>
- <xsl:copy-of select="@protocol"/>
- <xsl:apply-templates mode="prepare2"/>
- </frames>
-</xsl:template>
-
-<xsl:template match="class" mode="prepare2">
- <class>
- <xsl:copy-of select="@*"/>
- <xsl:apply-templates mode="prepare2"/>
- </class>
-</xsl:template>
-
-<xsl:template match="frame" mode="prepare2">
- <xsl:element name="{name()}">
- <xsl:copy-of select="@*"/>
- <xsl:apply-templates mode="prepare2" select="field"/>
- </xsl:element>
-</xsl:template>
-
-<xsl:template match="domain" mode="prepare2"></xsl:template>
-
-</xsl:stylesheet>
diff --git a/cpp/etc/stylesheets/prepare3.xsl b/cpp/etc/stylesheets/prepare3.xsl
deleted file mode 100644
index e04632ae84..0000000000
--- a/cpp/etc/stylesheets/prepare3.xsl
+++ /dev/null
@@ -1,74 +0,0 @@
-<?xml version='1.0'?>
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
-<xsl:import href="utils.xsl"/>
-
-<xsl:output indent="yes"/>
-
-<!-- final preparation of the model -->
-
-<xsl:template match="/">
- <xsl:apply-templates mode="prepare3"/>
-</xsl:template>
-
-<xsl:template match="frames" mode="prepare3">
- <frames>
- <xsl:copy-of select="@protocol"/>
- <xsl:apply-templates mode="prepare3"/>
- </frames>
-</xsl:template>
-
-<xsl:template match="class" mode="prepare3">
- <class>
- <xsl:copy-of select="@*"/>
- <xsl:apply-templates mode="prepare3"/>
- </class>
-</xsl:template>
-
-<xsl:template match="frame" mode="prepare3">
- <xsl:element name="frame">
- <xsl:copy-of select="@*"/>
- <xsl:if test="field[@type='bit']">
- <xsl:attribute name="has-bit-field">true</xsl:attribute>
- <xsl:attribute name="bit-field-count"><xsl:value-of select="count(field[@type='bit'])"/></xsl:attribute>
- </xsl:if>
- <xsl:apply-templates mode="prepare3"/>
- </xsl:element>
-</xsl:template>
-
-
-<xsl:template match="field" mode="prepare3">
- <field>
- <xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
- <!-- ensure the field name is processed to be a valid java name -->
- <xsl:attribute name="name"><xsl:value-of select="amqp:field-name(@name)"/></xsl:attribute>
- <!-- add some attributes to make code generation easier -->
- <xsl:attribute name="cpp-type"><xsl:value-of select="amqp:cpp-type(@type)"/></xsl:attribute>
- <xsl:attribute name="cpp-arg-type"><xsl:value-of select="amqp:cpp-arg-type(@type)"/></xsl:attribute>
- <xsl:if test="@type='bit'">
- <xsl:attribute name="boolean-index"><xsl:number count="field[@type='bit']"/></xsl:attribute>
- </xsl:if>
- </field>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/cpp/etc/stylesheets/registry.xsl b/cpp/etc/stylesheets/registry.xsl
deleted file mode 100644
index 350f1ea1d6..0000000000
--- a/cpp/etc/stylesheets/registry.xsl
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version='1.0'?>
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
-<xsl:import href="java.xsl"/>
-
-<xsl:output method="text" indent="yes" name="textFormat"/>
-
-<xsl:template match="/">
- <xsl:apply-templates mode="generate-registry" select="registries"/>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/cpp/etc/stylesheets/utils.xsl b/cpp/etc/stylesheets/utils.xsl
deleted file mode 100644
index cbf0562686..0000000000
--- a/cpp/etc/stylesheets/utils.xsl
+++ /dev/null
@@ -1,214 +0,0 @@
-<?xml version='1.0'?>
-<!--
- -
- - Licensed to the Apache Software Foundation (ASF) under one
- - or more contributor license agreements. See the NOTICE file
- - distributed with this work for additional information
- - regarding copyright ownership. The ASF licenses this file
- - to you under the Apache License, Version 2.0 (the
- - "License"); you may not use this file except in compliance
- - with the License. You may obtain a copy of the License at
- -
- - http://www.apache.org/licenses/LICENSE-2.0
- -
- - Unless required by applicable law or agreed to in writing,
- - software distributed under the License is distributed on an
- - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- - KIND, either express or implied. See the License for the
- - specific language governing permissions and limitations
- - under the License.
- -
- -->
-<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:amqp="http://amqp.org">
-
-<!-- This file contains functions that are used in the generation of the java classes for framing -->
-
-<!-- retrieve the java type of a given amq type -->
-<xsl:function name="amqp:cpp-type">
- <xsl:param name="t"/>
- <xsl:choose>
- <xsl:when test="$t='octet'">u_int8_t</xsl:when>
- <xsl:when test="$t='short'">u_int16_t</xsl:when>
- <xsl:when test="$t='shortstr'">string</xsl:when>
- <xsl:when test="$t='longstr'">string</xsl:when>
- <xsl:when test="$t='bit'">bool</xsl:when>
- <xsl:when test="$t='long'">u_int32_t</xsl:when>
- <xsl:when test="$t='longlong'">u_int64_t</xsl:when>
- <xsl:when test="$t='table'">FieldTable</xsl:when>
- <xsl:otherwise>Object /*WARNING: undefined type*/</xsl:otherwise>
- </xsl:choose>
-</xsl:function>
-<xsl:function name="amqp:cpp-arg-type">
- <xsl:param name="t"/>
- <xsl:choose>
- <xsl:when test="$t='octet'">u_int8_t</xsl:when>
- <xsl:when test="$t='short'">u_int16_t</xsl:when>
- <xsl:when test="$t='shortstr'">const string&amp;</xsl:when>
- <xsl:when test="$t='longstr'">const string&amp;</xsl:when>
- <xsl:when test="$t='bit'">bool</xsl:when>
- <xsl:when test="$t='long'">u_int32_t</xsl:when>
- <xsl:when test="$t='longlong'">u_int64_t</xsl:when>
- <xsl:when test="$t='table'">const FieldTable&amp;</xsl:when>
- <xsl:otherwise>Object /*WARNING: undefined type*/</xsl:otherwise>
- </xsl:choose>
-</xsl:function>
-
-<!-- retrieve the code to get the field size of a given amq type -->
-<xsl:function name="amqp:field-length">
- <xsl:param name="f"/>
- <xsl:choose>
- <xsl:when test="$f/@type='bit' and $f/@boolean-index=1">
- <xsl:value-of select="concat('1 /*', $f/@name, '*/')"/>
- </xsl:when>
- <xsl:when test="$f/@type='bit' and $f/@boolean-index &gt; 1">
- <xsl:value-of select="concat('0 /*', $f/@name, '*/')"/>
- </xsl:when>
- <xsl:when test="$f/@type='char'">
- <xsl:value-of select="concat('1 /*', $f/@name, '*/')"/>
- </xsl:when>
- <xsl:when test="$f/@type='octet'">
- <xsl:value-of select="concat('1 /*', $f/@name, '*/')"/>
- </xsl:when>
- <xsl:when test="$f/@type='short'">
- <xsl:value-of select="concat('2 /*', $f/@name, '*/')"/>
- </xsl:when>
- <xsl:when test="$f/@type='long'">
- <xsl:value-of select="concat('4 /*', $f/@name, '*/')"/>
- </xsl:when>
- <xsl:when test="$f/@type='longlong'">
- <xsl:value-of select="concat('8 /*', $f/@name, '*/')"/>
- </xsl:when>
- <xsl:when test="$f/@type='shortstr'">
- <xsl:value-of select="concat('1 + ', $f/@name, '.length()')"/>
- </xsl:when>
- <xsl:when test="$f/@type='longstr'">
- <xsl:value-of select="concat('4 + ', $f/@name, '.length()')"/>
- </xsl:when>
- <xsl:when test="$f/@type='table'">
- <xsl:value-of select="concat($f/@name, '.size()')"/>
- </xsl:when>
- <xsl:otherwise><xsl:text>/* WARNING: COULD NOT DETERMINE FIELD SIZE */</xsl:text></xsl:otherwise>
- </xsl:choose>
-</xsl:function>
-
-<!-- retrieve the code to encode a field of a given amq type -->
-<!-- Note:
- This method will not provide an encoder for a bit field.
- Bit fields should be encoded together separately. -->
-
-<xsl:function name="amqp:encoder">
- <xsl:param name="f"/>
- <xsl:choose>
- <xsl:when test="$f/@type='octet'">
- <xsl:value-of select="concat('buffer.putOctet(', $f/@name, ')')"/>
- </xsl:when>
- <xsl:when test="$f/@type='short'">
- <xsl:value-of select="concat('buffer.putShort(', $f/@name, ')')"/>
- </xsl:when>
- <xsl:when test="$f/@type='long'">
- <xsl:value-of select="concat('buffer.putLong(', $f/@name, ')')"/>
- </xsl:when>
- <xsl:when test="$f/@type='longlong'">
- <xsl:value-of select="concat('buffer.putLongLong(', $f/@name, ')')"/>
- </xsl:when>
- <xsl:when test="$f/@type='shortstr'">
- <xsl:value-of select="concat('buffer.putShortString(', $f/@name, ')')"/>
- </xsl:when>
- <xsl:when test="$f/@type='longstr'">
- <xsl:value-of select="concat('buffer.putLongString(', $f/@name, ')')"/>
- </xsl:when>
- <xsl:when test="$f/@type='table'">
- <xsl:value-of select="concat('buffer.putFieldTable(', $f/@name, ')')"/>
- </xsl:when>
- <xsl:otherwise><xsl:text>/* WARNING: COULD NOT DETERMINE ENCODER */</xsl:text></xsl:otherwise>
- </xsl:choose>
-</xsl:function>
-
-<!-- retrieve the code to decode a field of a given amq type -->
-<xsl:function name="amqp:decoder">
- <xsl:param name="f"/>
- <xsl:choose>
- <xsl:when test="$f/@type='bit'">
- <xsl:value-of select="concat($f/@name, ' = (1 &lt;&lt; (', $f/@boolean-index, ' - 1)) &amp; flags;')"/>
- </xsl:when>
- <xsl:when test="$f/@type='octet'">
- <xsl:value-of select="concat($f/@name, ' = buffer.getOctet()')"/>
- </xsl:when>
- <xsl:when test="$f/@type='short'">
- <xsl:value-of select="concat($f/@name, ' = buffer.getShort()')"/>
- </xsl:when>
- <xsl:when test="$f/@type='long'">
- <xsl:value-of select="concat($f/@name, ' = buffer.getLong()')"/>
- </xsl:when>
- <xsl:when test="$f/@type='longlong'">
- <xsl:value-of select="concat($f/@name, ' = buffer.getLongLong()')"/>
- </xsl:when>
- <xsl:when test="$f/@type='shortstr'">
- <xsl:value-of select="concat('buffer.getShortString(', $f/@name), ')'"/>
- </xsl:when>
- <xsl:when test="$f/@type='longstr'">
- <xsl:value-of select="concat('buffer.getLongString(', $f/@name), ')'"/>
- </xsl:when>
- <xsl:when test="$f/@type='table'">
- <xsl:value-of select="concat('buffer.getFieldTable(', $f/@name, ')')"/>
- </xsl:when>
- <xsl:otherwise><xsl:text>/* WARNING: COULD NOT DETERMINE DECODER */</xsl:text></xsl:otherwise>
- </xsl:choose>
-</xsl:function>
-
-<!-- create the class name for a frame, based on class and method (passed in) -->
-<xsl:function name="amqp:class-name">
- <xsl:param name="class"/>
- <xsl:param name="method"/>
- <xsl:value-of select="concat(amqp:upper-first($class),amqp:upper-first(amqp:field-name($method)), 'Body')"/>
-</xsl:function>
-
-<!-- create the class name for a frame, based on class and method (passed in) -->
-<xsl:function name="amqp:method-name">
- <xsl:param name="class"/>
- <xsl:param name="method"/>
- <xsl:value-of select="concat(translate($class, '- ', '__'), '_', translate($method, '- ', '__'))"/>
-</xsl:function>
-
-<!-- get a valid field name, processing spaces and '-'s where appropriate -->
-<xsl:function name="amqp:field-name">
- <xsl:param name="name"/>
- <xsl:choose>
- <xsl:when test="contains($name, ' ')">
- <xsl:value-of select="concat(substring-before($name, ' '), amqp:upper-first(substring-after($name, ' ')))"/>
- </xsl:when>
- <xsl:when test="contains($name, '-')">
- <xsl:value-of select="concat(substring-before($name, '-'), amqp:upper-first(substring-after($name, '-')))"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$name"/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:function>
-
-<!-- convert the first character of the input to upper-case -->
-<xsl:function name="amqp:upper-first">
- <xsl:param name="in"/>
- <xsl:value-of select="concat(upper-case(substring($in, 1, 1)), substring($in, 2))"/>
-</xsl:function>
-
-
-<xsl:function name="amqp:keyword-check">
- <xsl:param name="in"/>
- <xsl:choose>
- <xsl:when test="contains($in, 'delete')">
- <xsl:value-of select="concat($in, '_')"/>
- </xsl:when>
- <xsl:when test="contains($in, 'string')">
- <xsl:value-of select="concat($in, '_')"/>
- </xsl:when>
- <xsl:when test="contains($in, 'return')">
- <xsl:value-of select="concat($in, '_')"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$in"/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:function>
-
-</xsl:stylesheet>