You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2008/11/24 20:12:32 UTC
svn commit: r720260 - in
/activemq/activemq-cpp/trunk/src/main/java/org/apache/activemq/openwire/tool:
AmqCppClassesGenerator.java AmqCppHeadersGenerator.java
AmqCppMarshallingHeadersGenerator.java
Author: tabish
Date: Mon Nov 24 11:12:32 2008
New Revision: 720260
URL: http://svn.apache.org/viewvc?rev=720260&view=rev
Log:
http://issues.apache.org/activemq/browse/AMQCPP-208
Updated generator that adds the getSize to the Message command and adds the AMQCPP_API to all the classes.
Modified:
activemq/activemq-cpp/trunk/src/main/java/org/apache/activemq/openwire/tool/AmqCppClassesGenerator.java
activemq/activemq-cpp/trunk/src/main/java/org/apache/activemq/openwire/tool/AmqCppHeadersGenerator.java
activemq/activemq-cpp/trunk/src/main/java/org/apache/activemq/openwire/tool/AmqCppMarshallingHeadersGenerator.java
Modified: activemq/activemq-cpp/trunk/src/main/java/org/apache/activemq/openwire/tool/AmqCppClassesGenerator.java
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/java/org/apache/activemq/openwire/tool/AmqCppClassesGenerator.java?rev=720260&r1=720259&r2=720260&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/java/org/apache/activemq/openwire/tool/AmqCppClassesGenerator.java (original)
+++ activemq/activemq-cpp/trunk/src/main/java/org/apache/activemq/openwire/tool/AmqCppClassesGenerator.java Mon Nov 24 11:12:32 2008
@@ -245,7 +245,7 @@
out.println(" const "+className+"* srcPtr = dynamic_cast<const "+className+"*>( src );");
out.println("");
out.println(" if( srcPtr == NULL || src == NULL ) {");
-out.println(" ");
+out.println("");
out.println(" throw decaf::lang::exceptions::NullPointerException(");
out.println(" __FILE__, __LINE__,");
out.println(" \""+className+"::copyDataStructure - src is NULL or invalid\" );");
@@ -271,8 +271,8 @@
out.println(" for( size_t i" + parameterName + " = 0; i" + parameterName + " < srcPtr->"+getter+"().size(); ++i" + parameterName + " ) {");
out.println(" if( srcPtr->"+getter+"()[i"+parameterName+"] != NULL ) {");
- out.println(" this->"+getter+"().push_back( ");
- out.println(" dynamic_cast<"+arrayType+"*>( ");
+ out.println(" this->"+getter+"().push_back(");
+ out.println(" dynamic_cast<"+arrayType+"*>(");
out.println(" srcPtr->"+getter+"()[i"+parameterName+"]->cloneDataStructure() ) );");
out.println(" } else {");
out.println(" this->"+getter+"().push_back( NULL );");
@@ -283,8 +283,8 @@
out.println(" this->"+setter+"( srcPtr->"+getter+"() );");
} else {
out.println(" if( srcPtr->"+getter+"() != NULL ) {");
- out.println(" this->"+setter+"( ");
- out.println(" dynamic_cast<"+type+"*>( ");
+ out.println(" this->"+setter+"(");
+ out.println(" dynamic_cast<"+type+"*>(");
out.println(" srcPtr->"+getter+"()->cloneDataStructure() ) );");
out.println(" }");
}
@@ -298,7 +298,7 @@
out.println("");
out.println("////////////////////////////////////////////////////////////////////////////////");
out.println("unsigned char "+className+"::getDataStructureType() const {");
-out.println(" return "+className+"::ID_" + className.toUpperCase() + "; ");
+out.println(" return "+className+"::ID_" + className.toUpperCase() + ";");
out.println("}");
// toString
@@ -311,7 +311,7 @@
out.println(" ostringstream stream;" );
out.println("");
out.println(" stream << \"Begin Class = "+className+"\" << std::endl;" );
-out.println(" stream << \" Value of "+className+"::ID_" + className.toUpperCase() + " = "+getOpenWireOpCode(jclass)+"\" << std::endl; ");
+out.println(" stream << \" Value of "+className+"::ID_" + className.toUpperCase() + " = "+getOpenWireOpCode(jclass)+"\" << std::endl;");
for( Iterator iter = properties.iterator(); iter.hasNext(); ) {
JProperty property = (JProperty) iter.next();
@@ -451,6 +451,20 @@
out.println(" return true;" );
out.println("}");
+ if( className.equals( "Message" ) ) {
+out.println("");
+out.println("////////////////////////////////////////////////////////////////////////////////");
+out.println("unsigned int "+className+"::getSize() const {");
+out.println("");
+out.println(" unsigned int size = DEFAULT_MESSAGE_SIZE;");
+out.println("");
+out.println(" size += (unsigned int)this->getContent().size();");
+out.println(" size += (unsigned int)this->getMarshalledProperties().size();");
+out.println("");
+out.println(" return size;");
+out.println("}");
+ }
+
for( Iterator iter = properties.iterator(); iter.hasNext(); ) {
JProperty property = (JProperty) iter.next();
String type = toCppType(property.getType());
Modified: activemq/activemq-cpp/trunk/src/main/java/org/apache/activemq/openwire/tool/AmqCppHeadersGenerator.java
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/java/org/apache/activemq/openwire/tool/AmqCppHeadersGenerator.java?rev=720260&r1=720259&r2=720260&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/java/org/apache/activemq/openwire/tool/AmqCppHeadersGenerator.java (original)
+++ activemq/activemq-cpp/trunk/src/main/java/org/apache/activemq/openwire/tool/AmqCppHeadersGenerator.java Mon Nov 24 11:12:32 2008
@@ -47,6 +47,7 @@
out.println("#pragma warning( disable : 4290 )");
out.println("#endif");
out.println("");
+out.println("#include <activemq/util/Config.h>");
out.println("#include <activemq/connector/openwire/commands/"+baseClass+".h>");
List properties = getProperties();
@@ -89,11 +90,19 @@
out.println(" * in the activemq-openwire-generator module");
out.println(" *");
out.println(" */");
-out.println(" class "+className+" : public "+getProperBaseClassName( className, baseClass ) );
+out.println(" class AMQCPP_API "+className+" : public "+getProperBaseClassName( className, baseClass ) );
out.println(" {");
out.println(" protected:");
out.println("");
+
+ if( className.equals( "Message" ) ) {
+
+out.println(" static const unsigned int DEFAULT_MESSAGE_SIZE = 1024;");
+out.println("");
+
+ }
+
for (Iterator iter = properties.iterator(); iter.hasNext();) {
JProperty property = (JProperty) iter.next();
String type = toCppType(property.getType());
@@ -111,7 +120,7 @@
}
- String typeName = className.toUpperCase();
+ String typeName = className.toUpperCase();
out.println("");
out.println(" public:");
@@ -160,6 +169,17 @@
out.println(" virtual bool equals( const DataStructure* value ) const;" );
out.println("");
+ if( className.equals( "Message" ) ) {
+
+out.println(" /**");
+out.println(" * Returns the Size of this message in Bytes.");
+out.println(" * @returns number of bytes this message equates to.");
+out.println(" */");
+out.println(" virtual unsigned int getSize() const;");
+out.println("");
+
+ }
+
for( Iterator iter = properties.iterator(); iter.hasNext(); ) {
JProperty property = (JProperty) iter.next();
String type = toCppType(property.getType());
Modified: activemq/activemq-cpp/trunk/src/main/java/org/apache/activemq/openwire/tool/AmqCppMarshallingHeadersGenerator.java
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/main/java/org/apache/activemq/openwire/tool/AmqCppMarshallingHeadersGenerator.java?rev=720260&r1=720259&r2=720260&view=diff
==============================================================================
--- activemq/activemq-cpp/trunk/src/main/java/org/apache/activemq/openwire/tool/AmqCppMarshallingHeadersGenerator.java (original)
+++ activemq/activemq-cpp/trunk/src/main/java/org/apache/activemq/openwire/tool/AmqCppMarshallingHeadersGenerator.java Mon Nov 24 11:12:32 2008
@@ -176,6 +176,7 @@
out.println("#include <decaf/io/DataInputStream.h>");
out.println("#include <decaf/io/DataOutputStream.h>");
out.println("#include <decaf/io/IOException.h>");
+out.println("#include <activemq/util/Config.h>");
out.println("#include <activemq/connector/openwire/OpenWireFormat.h>");
out.println("#include <activemq/connector/openwire/commands/DataStructure.h>");
out.println("#include <activemq/connector/openwire/utils/BooleanStream.h>");
@@ -193,7 +194,7 @@
out.println(" * if you need to make a change, please see the Java Classes");
out.println(" * in the activemq-openwire-generator module");
out.println(" */");
-out.println(" class "+className+" : public "+baseClass);
+out.println(" class AMQCPP_API "+className+" : public "+baseClass);
out.println(" {");
out.println(" public:");
out.println("");