Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 37795 invoked from network); 2 Nov 2004 13:53:40 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 2 Nov 2004 13:53:40 -0000 Received: (qmail 4794 invoked by uid 500); 2 Nov 2004 13:53:37 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 4653 invoked by uid 500); 2 Nov 2004 13:53:35 -0000 Mailing-List: contact axis-cvs-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: list-post: Delivered-To: mailing list axis-cvs@ws.apache.org Received: (qmail 4636 invoked by uid 99); 2 Nov 2004 13:53:35 -0000 X-ASF-Spam-Status: No, hits=-10.0 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Tue, 02 Nov 2004 05:53:33 -0800 Received: (qmail 37747 invoked by uid 1498); 2 Nov 2004 13:53:32 -0000 Date: 2 Nov 2004 13:53:32 -0000 Message-ID: <20041102135332.37746.qmail@minotaur.apache.org> From: whitlock@apache.org To: ws-axis-cvs@apache.org Subject: cvs commit: ws-axis/c/tools/trace/org/apache/axis/tracetool Tracer.java X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N whitlock 2004/11/02 05:53:32 Modified: c/include/axis/client Stub.hpp c/include/axis/server Attribute.h Attribute.hpp IHeaderBlock.hpp SoapEnvVersions.hpp c/src/common AxisTrace.cpp c/src/engine/client Stub.cpp c/src/soap Attribute.cpp ComplexElement.cpp ComplexElement.h HeaderBlock.cpp HeaderBlock.h SoapBody.cpp SoapDeSerializer.cpp SoapEnvelope.cpp SoapHeader.cpp SoapHeader.h SoapKeywordMapping.cpp SoapKeywordMapping.h SoapMethod.cpp SoapSerializer.h c/tools/trace/org/apache/axis/tracetool Tracer.java Added: c/src/soap Attribute.h Log: Change Attribute.h from external to internal Revision Changes Path 1.4 +7 -7 ws-axis/c/include/axis/client/Stub.hpp Index: Stub.hpp =================================================================== RCS file: /home/cvs/ws-axis/c/include/axis/client/Stub.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- Stub.hpp 29 Oct 2004 09:53:35 -0000 1.3 +++ Stub.hpp 2 Nov 2004 13:53:30 -0000 1.4 @@ -62,7 +62,7 @@ #define _STUB_H____OF_AXIS_INCLUDED_ #include -#include +#include #include using namespace std; @@ -409,7 +409,7 @@ * @return First SOAP method attribute pointer. If there are no SOAP method * attributes set, returns NULL. */ - Attribute* getFirstSOAPMethodAttribute(); + IAttribute* getFirstSOAPMethodAttribute(); /** * Iterator for SOAP method attributes @@ -423,7 +423,7 @@ * @return Next SOAP method attribute pointer. If there are no SOAP method * attributes set or if iterator is at the end of the list, returns NULL. */ - Attribute* getNextSOAPMethodAttribute(); + IAttribute* getNextSOAPMethodAttribute(); /** * Accessor for SOAP method attributes @@ -442,7 +442,7 @@ * @return Current SOAP method attribute pointer. If there are no SOAP method * attribute set or if iterator is at the end of the list, returns NULL. */ - Attribute* getCurrentSOAPMethodAttribute(); + IAttribute* getCurrentSOAPMethodAttribute(); /** * Deletes the SOAP method attribute currently pointed to by @@ -469,7 +469,7 @@ * * @param pAttribute Pointer of Attribute to be deleted */ - void deleteSOAPMethodAttribute(Attribute* pAttribute); + void deleteSOAPMethodAttribute(IAttribute* pAttribute); /** * Set transport timeout. @@ -561,12 +561,12 @@ /** * List of SOAPMethod Attributes */ - vector m_vSOAPMethodAttributes; + vector m_vSOAPMethodAttributes; /** * Trasport keys iterator */ - vector ::iterator m_viCurrentSOAPMethodAttribute; + vector ::iterator m_viCurrentSOAPMethodAttribute; /** * Timeout in seconds 1.20 +1 -1 ws-axis/c/include/axis/server/Attribute.h Index: Attribute.h =================================================================== RCS file: /home/cvs/ws-axis/c/include/axis/server/Attribute.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- Attribute.h 28 Oct 2004 11:27:18 -0000 1.19 +++ Attribute.h 2 Nov 2004 13:53:30 -0000 1.20 @@ -13,4 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -#error "Please include Attribute.hpp instead" +#error "Please include IAttribute.hpp instead" 1.4 +1 -71 ws-axis/c/include/axis/server/Attribute.hpp Index: Attribute.hpp =================================================================== RCS file: /home/cvs/ws-axis/c/include/axis/server/Attribute.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- Attribute.hpp 29 Oct 2004 15:34:55 -0000 1.3 +++ Attribute.hpp 2 Nov 2004 13:53:30 -0000 1.4 @@ -13,74 +13,4 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - - /** - * @file Attribute.hpp - * - * - */ - -#if !defined(_ATTRIBUTE_H____OF_AXIS_INCLUDED_) -#define _ATTRIBUTE_H____OF_AXIS_INCLUDED_ - -#include "GDefine.hpp" -#include -#include -#include - -AXIS_CPP_NAMESPACE_START -using namespace std; - -class SoapSerializer; - -/** - * @class Attribute - * @brief interface for the Attribute class. - * - * @author Roshan Weerasuriya (roshan@opensource.lk, roshanw@jkcsworld.com) - * @author Samisa Abeysinghe (sabeysinghe@virtusa.com) - * @author Susantha Kumara (susantha@opensource.lk, skumara@virtusa.com) - * - */ - -class Attribute : public IAttribute -{ -public: -#ifdef UNIT_TESTING_ON - int initializeForTesting(); -#endif - int serialize(SoapSerializer& pSZ) const; - int serialize(SoapSerializer& pSZ, list& lstTmpNameSpaceStack); - - Attribute(); - Attribute(const AxisChar* localname, const AxisChar* prefix, - const AxisChar* uri, const AxisChar* value); - Attribute(const AxisChar* localname, const AxisChar* prefix, - const AxisChar* value); - Attribute(const Attribute& rCopy); - Attribute* clone(); - virtual ~Attribute(); - - void setValue(const AxisChar* value); - void setUri(const AxisChar* uri); - void setPrefix(const AxisChar* prefix); - void setLocalName(const AxisChar* localname); - - const AxisChar* getValue(); - const AxisChar* getUri(); - const AxisChar* getPrefix(); - const AxisChar* getLocalName(); - -private: - bool isSerializable() const; - AxisString m_localname; - AxisString m_prefix; - AxisString m_uri; - AxisString m_value; - -}; - -AXIS_CPP_NAMESPACE_END - -#endif - +#error "Please include IAttribute.hpp instead" 1.4 +3 -9 ws-axis/c/include/axis/server/IHeaderBlock.hpp Index: IHeaderBlock.hpp =================================================================== RCS file: /home/cvs/ws-axis/c/include/axis/server/IHeaderBlock.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- IHeaderBlock.hpp 29 Oct 2004 15:34:55 -0000 1.3 +++ IHeaderBlock.hpp 2 Nov 2004 13:53:30 -0000 1.4 @@ -21,12 +21,6 @@ #include "SoapEnvVersions.hpp" #include -AXIS_CPP_NAMESPACE_START - -class Attribute; - -AXIS_CPP_NAMESPACE_END - enum HEADER_BLOCK_STD_ATTR_TYPE { ROLE_NEXT=1, ROLE_NONE=2, ROLE_ULTIMATE_RECEIVER=3, @@ -178,7 +172,7 @@ * * @return A pointer to the created standard Attribute will be returned. */ - virtual Attribute* createStdAttribute(HEADER_BLOCK_STD_ATTR_TYPE + virtual IAttribute* createStdAttribute(HEADER_BLOCK_STD_ATTR_TYPE eStdAttrType, SOAP_VERSION eSOAP_VERSION) =0; /** @@ -191,7 +185,7 @@ * * @return A pointer to the created Attribute will be returned. */ - virtual Attribute* createAttribute(const AxisChar* localname, + virtual IAttribute* createAttribute(const AxisChar* localname, const AxisChar* prefix, const AxisChar* uri, const AxisChar* value) = 0; @@ -204,7 +198,7 @@ * * @return A pointer to the created Attribute will be returned. */ - virtual Attribute* createAttribute(const AxisChar *localname, + virtual IAttribute* createAttribute(const AxisChar *localname, const AxisChar *prefix, const AxisChar *value) = 0; /** * Gets an Attribute from the HeaderBlock. 1.3 +0 -6 ws-axis/c/include/axis/server/SoapEnvVersions.hpp Index: SoapEnvVersions.hpp =================================================================== RCS file: /home/cvs/ws-axis/c/include/axis/server/SoapEnvVersions.hpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- SoapEnvVersions.hpp 29 Oct 2004 15:34:55 -0000 1.2 +++ SoapEnvVersions.hpp 2 Nov 2004 13:53:30 -0000 1.3 @@ -62,12 +62,6 @@ VERSION_LAST } SOAP_VERSION; -AXIS_CPP_NAMESPACE_START - -class Attribute; - -AXIS_CPP_NAMESPACE_END - struct SoapEnvVersionsStruct { const AxisChar* pchNamespaceUri; 1.37 +15 -8 ws-axis/c/src/common/AxisTrace.cpp Index: AxisTrace.cpp =================================================================== RCS file: /home/cvs/ws-axis/c/src/common/AxisTrace.cpp,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- AxisTrace.cpp 2 Nov 2004 10:03:11 -0000 1.36 +++ AxisTrace.cpp 2 Nov 2004 13:53:31 -0000 1.37 @@ -294,10 +294,13 @@ traceLine("Unknown exception caught during trace entry"); } - string name = className; - name += "::"; - name += methodName; - m_stack.push(name); + string name; + if (NULL!=className) { + name = className; + name += "::"; + name += methodName; + } else name = methodName; + m_stack.push(name); } void AxisTrace::traceExit(const char *className, const char *methodName, @@ -307,9 +310,12 @@ try { // Careful here in case entries and exits don't match - string name = className; - name += "::"; - name += methodName; + string name; + if (NULL!=className) { + name = className; + name += "::"; + name += methodName; + } else name = methodName; while (m_stack.size()>0 && name!=m_stack.top()) m_stack.pop(); if (m_stack.size()>0) m_stack.pop(); @@ -394,6 +400,7 @@ pcValue = *((char**)pcValue); sprintf(prim,"%p ",pcValue); line += prim; + if (NULL==pcValue) return; // no break! case TRACETYPE_DATA: @@ -421,7 +428,7 @@ try { pcValue = *((char**)pcValue); line += "\""; - line += pcValue; + line += ((NULL==pcValue)?"":pcValue); line += "\""; } catch (...) { line += ""; 1.21 +11 -9 ws-axis/c/src/engine/client/Stub.cpp Index: Stub.cpp =================================================================== RCS file: /home/cvs/ws-axis/c/src/engine/client/Stub.cpp,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- Stub.cpp 29 Oct 2004 09:53:35 -0000 1.20 +++ Stub.cpp 2 Nov 2004 13:53:31 -0000 1.21 @@ -42,6 +42,7 @@ #include "../../transport/SOAPTransport.h" #include #include "../../soap/SoapSerializer.h" +#include "../../soap/Attribute.h" AXIS_CPP_NAMESPACE_USE @@ -284,7 +285,7 @@ { //Samisa //Check if there is an attribute with the same local name is already set - Attribute* pAttribute = this->getFirstSOAPMethodAttribute(); + IAttribute* pAttribute = this->getFirstSOAPMethodAttribute(); while( pAttribute ) { if( strcmp(pAttribute->getLocalName(), pLocalname) == 0 ) @@ -304,7 +305,7 @@ m_viCurrentSOAPMethodAttribute = m_vSOAPMethodAttributes.begin(); } -Attribute* Stub::getFirstSOAPMethodAttribute() +IAttribute* Stub::getFirstSOAPMethodAttribute() { m_viCurrentSOAPMethodAttribute = m_vSOAPMethodAttributes.begin(); if (m_viCurrentSOAPMethodAttribute == m_vSOAPMethodAttributes.end()) @@ -313,7 +314,7 @@ return (*m_viCurrentSOAPMethodAttribute); } -Attribute* Stub::getNextSOAPMethodAttribute() +IAttribute* Stub::getNextSOAPMethodAttribute() { //already at the end? if (m_viCurrentSOAPMethodAttribute == m_vSOAPMethodAttributes.end()) @@ -327,7 +328,7 @@ return (*m_viCurrentSOAPMethodAttribute); } -Attribute* Stub::getCurrentSOAPMethodAttribute() +IAttribute* Stub::getCurrentSOAPMethodAttribute() { if (m_viCurrentSOAPMethodAttribute == m_vSOAPMethodAttributes.end()) return NULL; @@ -345,7 +346,7 @@ { for (unsigned int i = 0; i < m_vSOAPMethodAttributes.size(); i++) { - pSerializer->setSOAPMethodAttribute(m_vSOAPMethodAttributes[i]->clone()); + pSerializer->setSOAPMethodAttribute(((Attribute*)m_vSOAPMethodAttributes[i])->clone()); } } } @@ -360,9 +361,9 @@ } } -void Stub::deleteSOAPMethodAttribute(Attribute* pAttribute) +void Stub::deleteSOAPMethodAttribute(IAttribute* pAttribute) { - vector ::iterator currentSOAPMethodAttribute = m_vSOAPMethodAttributes.begin(); + vector ::iterator currentSOAPMethodAttribute = m_vSOAPMethodAttributes.begin(); bool bDone = false; while( !bDone && currentSOAPMethodAttribute != m_vSOAPMethodAttributes.end()) { @@ -378,9 +379,10 @@ } -void Stub::setSOAPMethodAttribute(const AxisChar *pLocalname, const AxisChar *pPrefix, const AxisChar *pUri, const AxisChar *pValue) +void Stub::setSOAPMethodAttribute(const AxisChar *pLocalname, const AxisChar *pPrefix, + const AxisChar *pUri, const AxisChar *pValue) { - Attribute* pAttribute = new Attribute(pLocalname, pPrefix, pUri, pValue); + IAttribute* pAttribute = new Attribute(pLocalname, pPrefix, pUri, pValue); m_vSOAPMethodAttributes.push_back(pAttribute); m_viCurrentSOAPMethodAttribute = m_vSOAPMethodAttributes.begin(); } 1.27 +1 -2 ws-axis/c/src/soap/Attribute.cpp Index: Attribute.cpp =================================================================== RCS file: /home/cvs/ws-axis/c/src/soap/Attribute.cpp,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- Attribute.cpp 29 Oct 2004 15:34:57 -0000 1.26 +++ Attribute.cpp 2 Nov 2004 13:53:31 -0000 1.27 @@ -37,8 +37,7 @@ #pragma warning (disable : 4786) #endif -#include -#include +#include "Attribute.h" #include "SoapSerializer.h" AXIS_CPP_NAMESPACE_START 1.28 +1 -1 ws-axis/c/src/soap/ComplexElement.cpp Index: ComplexElement.cpp =================================================================== RCS file: /home/cvs/ws-axis/c/src/soap/ComplexElement.cpp,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- ComplexElement.cpp 29 Oct 2004 15:34:57 -0000 1.27 +++ ComplexElement.cpp 2 Nov 2004 13:53:31 -0000 1.28 @@ -42,7 +42,7 @@ /* ComplexElement.cpp: implementation of the ComplexElement class. */ #include -#include +#include "Attribute.h" #include "ComplexElement.h" #include "SoapSerializer.h" 1.20 +1 -1 ws-axis/c/src/soap/ComplexElement.h Index: ComplexElement.h =================================================================== RCS file: /home/cvs/ws-axis/c/src/soap/ComplexElement.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- ComplexElement.h 26 Oct 2004 10:40:55 -0000 1.19 +++ ComplexElement.h 2 Nov 2004 13:53:31 -0000 1.20 @@ -50,7 +50,7 @@ #include #include -#include +#include "Attribute.h" AXIS_CPP_NAMESPACE_START 1.35 +3 -4 ws-axis/c/src/soap/HeaderBlock.cpp Index: HeaderBlock.cpp =================================================================== RCS file: /home/cvs/ws-axis/c/src/soap/HeaderBlock.cpp,v retrieving revision 1.34 retrieving revision 1.35 diff -u -r1.34 -r1.35 --- HeaderBlock.cpp 29 Oct 2004 15:34:58 -0000 1.34 +++ HeaderBlock.cpp 2 Nov 2004 13:53:31 -0000 1.35 @@ -58,7 +58,6 @@ #include #include "ComplexElement.h" #include "CharacterElement.h" -#include AXIS_CPP_NAMESPACE_START @@ -501,7 +500,7 @@ return pBasicNode; } -Attribute* HeaderBlock::createAttribute(const AxisChar *localname, +IAttribute* HeaderBlock::createAttribute(const AxisChar *localname, const AxisChar *prefix, const AxisChar *value) { @@ -517,7 +516,7 @@ return pAttribute; } -Attribute* HeaderBlock::createAttribute(const AxisChar *localname, +IAttribute* HeaderBlock::createAttribute(const AxisChar *localname, const AxisChar *prefix, const AxisChar *uri, const AxisChar *value) @@ -528,7 +527,7 @@ return pAttribute; } -Attribute* HeaderBlock::createStdAttribute(HEADER_BLOCK_STD_ATTR_TYPE +IAttribute* HeaderBlock::createStdAttribute(HEADER_BLOCK_STD_ATTR_TYPE eStdAttrType, SOAP_VERSION eSOAP_VERSION) { 1.17 +4 -3 ws-axis/c/src/soap/HeaderBlock.h Index: HeaderBlock.h =================================================================== RCS file: /home/cvs/ws-axis/c/src/soap/HeaderBlock.h,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- HeaderBlock.h 26 Oct 2004 10:40:55 -0000 1.16 +++ HeaderBlock.h 2 Nov 2004 13:53:31 -0000 1.17 @@ -25,6 +25,7 @@ using namespace std; class BasicNode; +class Attribute; /* * @class BasicNode @@ -223,7 +224,7 @@ * * @return A pointer to the created standard Attribute will be returned. */ - Attribute* createStdAttribute(HEADER_BLOCK_STD_ATTR_TYPE eStdAttrType, + IAttribute* createStdAttribute(HEADER_BLOCK_STD_ATTR_TYPE eStdAttrType, SOAP_VERSION eSOAP_VERSION); /** @@ -239,7 +240,7 @@ * @return A pointer to the created Attribute will be returned. If the * operation is unsuccessfull it will return NULL. */ - Attribute* createAttribute(const AxisChar* localname, + IAttribute* createAttribute(const AxisChar* localname, const AxisChar* prefix, const AxisChar* uri, const AxisChar* value); /** @@ -251,7 +252,7 @@ * * @return A pointer to the created Attribute will be returned. */ - Attribute* createAttribute(const AxisChar* localname, + IAttribute* createAttribute(const AxisChar* localname, const AxisChar* prefix, const AxisChar* value); 1.28 +1 -1 ws-axis/c/src/soap/SoapBody.cpp Index: SoapBody.cpp =================================================================== RCS file: /home/cvs/ws-axis/c/src/soap/SoapBody.cpp,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- SoapBody.cpp 26 Oct 2004 10:40:55 -0000 1.27 +++ SoapBody.cpp 2 Nov 2004 13:53:31 -0000 1.28 @@ -39,7 +39,7 @@ #include "SoapBody.h" #include "SoapSerializer.h" #include -#include +#include "Attribute.h" #include "../common/AxisTrace.h" extern AXIS_CPP_NAMESPACE_PREFIX AxisTrace* g_pAT; 1.95 +0 -1 ws-axis/c/src/soap/SoapDeSerializer.cpp Index: SoapDeSerializer.cpp =================================================================== RCS file: /home/cvs/ws-axis/c/src/soap/SoapDeSerializer.cpp,v retrieving revision 1.94 retrieving revision 1.95 diff -u -r1.94 -r1.95 --- SoapDeSerializer.cpp 29 Oct 2004 15:34:58 -0000 1.94 +++ SoapDeSerializer.cpp 2 Nov 2004 13:53:31 -0000 1.95 @@ -59,7 +59,6 @@ #include "../engine/XMLParserFactory.h" #include "../xml/XMLParser.h" #include "../xml/QName.h" -#include #include "AxisSoapException.h" #include 1.25 +1 -2 ws-axis/c/src/soap/SoapEnvelope.cpp Index: SoapEnvelope.cpp =================================================================== RCS file: /home/cvs/ws-axis/c/src/soap/SoapEnvelope.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- SoapEnvelope.cpp 26 Oct 2004 10:40:56 -0000 1.24 +++ SoapEnvelope.cpp 2 Nov 2004 13:53:31 -0000 1.25 @@ -25,10 +25,9 @@ #include "SoapEnvelope.h" #include #include "SoapSerializer.h" -#include - #include #include "../common/AxisTrace.h" +#include "Attribute.h" extern AXIS_CPP_NAMESPACE_PREFIX AxisTrace* g_pAT; 1.27 +1 -1 ws-axis/c/src/soap/SoapHeader.cpp Index: SoapHeader.cpp =================================================================== RCS file: /home/cvs/ws-axis/c/src/soap/SoapHeader.cpp,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- SoapHeader.cpp 26 Oct 2004 10:40:56 -0000 1.26 +++ SoapHeader.cpp 2 Nov 2004 13:53:31 -0000 1.27 @@ -33,7 +33,7 @@ #include "SoapHeader.h" #include "SoapSerializer.h" #include -#include +#include "Attribute.h" #include "HeaderBlock.h" AXIS_CPP_NAMESPACE_START 1.12 +1 -0 ws-axis/c/src/soap/SoapHeader.h Index: SoapHeader.h =================================================================== RCS file: /home/cvs/ws-axis/c/src/soap/SoapHeader.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- SoapHeader.h 26 Oct 2004 10:40:56 -0000 1.11 +++ SoapHeader.h 2 Nov 2004 13:53:31 -0000 1.12 @@ -56,6 +56,7 @@ } HEADER_LEVELS; AXIS_CPP_NAMESPACE_START +class Attribute; class SoapHeader : public ISoapHeader { 1.12 +0 -1 ws-axis/c/src/soap/SoapKeywordMapping.cpp Index: SoapKeywordMapping.cpp =================================================================== RCS file: /home/cvs/ws-axis/c/src/soap/SoapKeywordMapping.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- SoapKeywordMapping.cpp 26 Oct 2004 10:40:56 -0000 1.11 +++ SoapKeywordMapping.cpp 2 Nov 2004 13:53:31 -0000 1.12 @@ -20,7 +20,6 @@ */ #include "SoapKeywordMapping.h" -#include #include "../common/AxisUtils.h" AXIS_CPP_NAMESPACE_START 1.12 +1 -0 ws-axis/c/src/soap/SoapKeywordMapping.h Index: SoapKeywordMapping.h =================================================================== RCS file: /home/cvs/ws-axis/c/src/soap/SoapKeywordMapping.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- SoapKeywordMapping.h 26 Oct 2004 10:40:56 -0000 1.11 +++ SoapKeywordMapping.h 2 Nov 2004 13:53:31 -0000 1.12 @@ -19,6 +19,7 @@ #include "../common/AxisUtils.h" #include +#include "Attribute.h" #include using namespace std; 1.27 +1 -1 ws-axis/c/src/soap/SoapMethod.cpp Index: SoapMethod.cpp =================================================================== RCS file: /home/cvs/ws-axis/c/src/soap/SoapMethod.cpp,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- SoapMethod.cpp 26 Oct 2004 10:40:56 -0000 1.26 +++ SoapMethod.cpp 2 Nov 2004 13:53:31 -0000 1.27 @@ -21,7 +21,7 @@ #include "SoapMethod.h" -#include +#include "Attribute.h" #include AXIS_CPP_NAMESPACE_START 1.29 +1 -0 ws-axis/c/src/soap/SoapSerializer.h Index: SoapSerializer.h =================================================================== RCS file: /home/cvs/ws-axis/c/src/soap/SoapSerializer.h,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- SoapSerializer.h 26 Oct 2004 10:40:56 -0000 1.28 +++ SoapSerializer.h 2 Nov 2004 13:53:31 -0000 1.29 @@ -32,6 +32,7 @@ class SoapFault; class HeaderBlock; class IArrayBean; +class Attribute; /** * @class SoapSerializer 1.9 +72 -86 ws-axis/c/src/soap/Attribute.h 1.5 +113 -126 ws-axis/c/tools/trace/org/apache/axis/tracetool/Tracer.java Index: Tracer.java =================================================================== RCS file: /home/cvs/ws-axis/c/tools/trace/org/apache/axis/tracetool/Tracer.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- Tracer.java 12 Oct 2004 15:20:35 -0000 1.4 +++ Tracer.java 2 Nov 2004 13:53:32 -0000 1.5 @@ -28,28 +28,25 @@ private Signature signature = null; private final static String SIGNATURE = " /* AUTOINSERTED TRACE */"; - // Escape ?'s here to avoid trigraphs which map ??) to ] - private final static String UNKNOWN_FORMAT = "\\?\\?\\?\\?"; - - private static Hashtable primitives = new Hashtable(); + private static Hashtable typetable = new Hashtable(); static { - primitives.put("int", "%i"); - primitives.put("unsigned int", "%u"); - primitives.put("unsigned", "%u"); - primitives.put("short", "%hi"); - primitives.put("short int", "%hi"); - primitives.put("unsigned short int", "%hu"); - primitives.put("unsigned short", "%hu"); - primitives.put("long", "%li"); - primitives.put("long int", "%li"); - primitives.put("unsigned long int", "%lu"); - primitives.put("unsigned long", "%lu"); - primitives.put("double", "%f"); - primitives.put("float", "%f"); - primitives.put("char", "%c"); - primitives.put("unsigned char", "%c"); - primitives.put("bool", "%s"); - // TODO: More primitives go in here + typetable.put("char", "CHAR"); + typetable.put("unsigned char", "CHAR"); + typetable.put("unsigned short", "USHORT"); + typetable.put("short", "SHORT"); + typetable.put("signed short", "SHORT"); + typetable.put("unsigned", "UINT"); + typetable.put("unsigned int", "UINT"); + typetable.put("int", "INT"); + typetable.put("signed int", "INT"); + typetable.put("signed", "INT"); + typetable.put("unsigned long", "ULONG"); + typetable.put("long", "LONG"); + typetable.put("signed long", "LONG"); + typetable.put("unsigned double", "UDOUBLE"); + typetable.put("double", "DOUBLE"); + typetable.put("float", "FLOAT"); + typetable.put("bool", "BOOL"); } /** @@ -75,48 +72,34 @@ } /** - * @param signature the signature of this method + * @param signature the signature of this method + * TODO: Can't tell the difference between static and non-static + * methods so can't tell whether to pass this or not. If we pass + * this in a static method it won't compile. */ void traceEntry(Signature signature) throws IOException { this.signature = signature; if (!signature.traceable()) return; + Parameter[] parms = signature.getParameters(); + int len = 0; + if (null != parms) + len = parms.length; String line = "\n" - + " #ifdef ENABLE_AXISTRACE\n" - + " if (g_pAT && g_pAT->isTraceOn()) try {\n" - + " char traceLine[256];\n" - + " sprintf(traceLine,\"> "; - if (null != signature.getClassName()) - line += signature.getClassName(); - line += signature.getMethodName(); - line += "("; - - Parameter[] parms = signature.getParameters(); - for (int i = 0; null != parms && i < parms.length; i++) { - String f = getFormat(parms[i]); - if (0 != i) - line += ","; - if (null == f) - line += UNKNOWN_FORMAT; - else - line += f; - } - line += ")\""; - - for (int i = 0; null != parms && i < parms.length; i++) { - if (null == getFormat(parms[i])) - continue; - line += "," + getName(parms[i]); - } - - line += ");\n"; - line += " g_pAT->traceLine(traceLine);" + SIGNATURE + "\n"; - line += " } catch (...) {\n"; - line += " g_pAT->traceLine(\"Unknown exception caught during trace entry\");\n"; - line += " }\n"; - line += " #endif\n"; + + "\t#ifdef ENABLE_AXISTRACE\n" + + "\t\tif (g_pAT && g_pAT->isTraceOn())\n" + + "\t\t\tg_pAT->traceEntry(" + + getClassName() + + ", \"" + + signature.getMethodName() + + "\", NULL, " + + len; + for (int i = 0; null != parms && i < parms.length; i++) + line += getTypeParms(parms[i]); + line += ");\t" + SIGNATURE + "\n"; + line += "\t#endif\n"; write(line); flush(); } @@ -125,24 +108,29 @@ if (!signature.traceable()) return; - // Check this method really should return void + // Check this method really should return void if (null != signature.getReturnType().getType()) Utils.rude( "Expecting to return void from a method that returns a value: " + signature.toString()); // Enclose the printf/return in {} in case if/then doesn't have {} - write("{"); - write( - "\n #ifdef ENABLE_AXISTRACE\n" - + " if (g_pAT && g_pAT->isTraceOn()) g_pAT->traceLine(\"< " - + signature.getMethodName() - + "\");" - + SIGNATURE - + "\n #endif\n"); + String line = "\t{\n"; + line += "\t\t#ifdef ENABLE_AXISTRACE\n"; + line += "\t\t\tif (g_pAT && g_pAT->isTraceOn())\n"; + line += "\t\t\t\tg_pAT->traceExit(" + + getClassName() + + ", \"" + + signature.getMethodName() + + "\");\t" + + SIGNATURE + + "\n"; + line += "\t\t#endif\n"; // now print out the return line itself - write(" return;\n }\n"); + line += "\t\treturn;\n"; + line += "\t}\n"; + write(line); flush(); } @@ -155,61 +143,42 @@ if (!signature.traceable()) return; - // Check this method doesn't return void + // Check this method doesn't return void if (null == signature.getReturnType().getType()) Utils.rude( "Expecting to return a value from a method that returns void: " + signature.toString()); - // Figure out the method name - String methodName = ""; - if (null != signature.getClassName()) - methodName = signature.getClassName(); - methodName += signature.getMethodName(); - - // We can't trace all kinds of C types unfortunately - Parameter retType = signature.getReturnType(); - String format = getFormat(retType); - String retValue; - if (null == format) { - format = UNKNOWN_FORMAT; - retValue = ""; - } else - retValue = ", " + getName(retType); - // Enclose the printf/return in {} in case if/then doesn't have {} // Copy the return value into a local called traceRet in case the // return value has side-effects such as "return i++;" or "return func();" // This makes sure that we don't execute the return value twice. // Unfortunately if the return value is a class we will invoke // a copy constructor. When initialising traceRet with value, put value - // in brackets in case it contains an operator that might be invoked - // after the assignment, like another assignment. - String line = " {\n"; - line += " #ifdef ENABLE_AXISTRACE\n"; - line += " " - + retType.getType() + // in brackets in case it contains an operator that might be invoked + // after the assignment, like another assignment. + String line = "\t{\n"; + line += "\t\t#ifdef ENABLE_AXISTRACE\n"; + line += "\t\t\t" + + signature.getReturnType().getType() + " traceRet = (" + value + ");\n"; - line += " if (g_pAT && g_pAT->isTraceOn()) try {\n"; - line += " char traceLine[256];\n"; - line += " sprintf(traceLine,\"< " - + methodName - + "(" - + format - + ")\"" - + retValue - + ");\n"; - line += " g_pAT->traceLine(traceLine);" + SIGNATURE + "\n"; - line += " } catch (...) {\n"; - line += " g_pAT->traceLine(\"Unknown exception caught during trace exit\");\n"; - line += " }\n"; - line += " return traceRet;\n"; - line += " #else\n"; - line += " return " + value + ";\n"; - line += " #endif\n"; - line += " }\n"; + line += "\t\t\tif (g_pAT && g_pAT->isTraceOn())\n"; + line += "\t\t\t\tg_pAT->traceExit(" + + getClassName() + + ", \"" + + signature.getMethodName() + + "\"" + + getTypeParms(signature.getReturnType()) + + ");\t" + + SIGNATURE + + "\n"; + line += "\t\t\treturn traceRet;\n"; + line += "\t\t#else\n"; + line += "\t\t\treturn " + value + ";\n"; + line += "\t\t#endif\n"; + line += "\t}\n"; write(line); flush(); } @@ -220,30 +189,48 @@ System.out.print(s); } - private String getFormat(Parameter p) { - String format = null; - String type = p.getTypeWithoutConst(); - if (null == type || 0 == type.length()) - format = null; - else if (type.endsWith("*")) - // TODO print out contents of pointers where possible - format = "%p"; - else if (primitives.keySet().contains(type)) - format = (String) primitives.get(type); - // else System.err.println("Unknown format type "+type); - // TODO: more elses should go in here - return format; - } - - private String getName(Parameter p) { + // TODO cope with STL strings + // TODO cope with pointers to primitives + // TODO cope with references + private String getTypeParms(Parameter p) { + String parms = ",\n\t\t\t\t\tAXIS_CPP_NAMESPACE_PREFIX TRACETYPE_"; String name = p.getName(); if (null == name) name = "traceRet"; + name = "((void*)&"+name+")"; + + String type = p.getTypeWithoutConst(); + if (null == type || 0 == type.length()) + parms += "UNKNOWN, 0, NULL"; + else if (type.endsWith("*")) { + String contents = type.substring(0, type.length() - 1); + if ("char".equals(contents)) + parms += "STRING, 0, " + name; + else if ("void".equals(contents)) + // We just don't know what this void* is pointing at + // so that best we can do is to print out the first byte. + parms += "POINTER, 1, " + name; + else + parms += "POINTER, sizeof(" + contents + "), " + name; + } else if (typetable.keySet().contains(type)) + parms += (String) typetable.get(type) + ", 0, " + name; + else if (-1 != type.indexOf("&")) { + // TODO: cope with references + parms += "UNKNOWN, 0, " + name; + } else + parms += "DATA, sizeof(" + type + "), " + name; + + return parms; + } - if ("bool".equals(p.getTypeWithoutConst())) { - return "(" + name + "?\"true\":\"false\")"; + private String getClassName() { + String name; + if (null != signature.getClassName()) { + name = signature.getClassName(); + name = name.substring(0, name.indexOf("::")); + name = "\"" + name + "\""; } else - return name; + name = "NULL"; + return name; } - }