axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "nadir amra (JIRA)" <axis-c-...@ws.apache.org>
Subject [jira] Assigned: (AXISCPP-1010) new method Call:clearSOAPMethodAttributes()
Date Sat, 30 Dec 2006 09:18:21 GMT
     [ http://issues.apache.org/jira/browse/AXISCPP-1010?page=all ]

nadir amra reassigned AXISCPP-1010:
-----------------------------------

    Assignee: nadir amra

> new method Call:clearSOAPMethodAttributes()
> -------------------------------------------
>
>                 Key: AXISCPP-1010
>                 URL: http://issues.apache.org/jira/browse/AXISCPP-1010
>             Project: Axis-C++
>          Issue Type: Improvement
>          Components: Client - API
>    Affects Versions:  1.6 Beta
>         Environment: WIN2K VS6SP6 JDK1.5.0:07
>            Reporter: Franz Fehringer
>         Assigned To: nadir amra
>
> I invented a new method Call:clearSOAPMethodAttributes() to avoid double serializing
of the same attributes at operation level.
> The relevant svn diffs are given below.
> An example scenario
> ppt->getCall()->initialize(CPP_DOC_PROVIDER);
> ppt->getCall()->setTransportProperty(SOAPACTION_HEADER , "#SearchRooms");
> ppt->getCall()->setSOAPVersion(SOAP_VER_1_1);
> ppt->getCall()->setOperation("SearchRoomsRequest", "http://www.pegs-pegstour.com/API/XMLSchema/1.0.1");
> ppt->getCall()->clearSOAPMethodAttributes();
> ppt->getCall()->setSOAPMethodAttribute("returnRateNotes", "", "false");
> ppt->getCall()->setSOAPMethodAttribute("returnAllocationRemaining", "", "true");
> ppt->getCall()->setSOAPMethodAttribute("includeOnRequest", "", "true");
> ppt->getCall()->setSOAPMethodAttribute("includeNonSeamless", "", "false");
> ppt->getCall()->setSOAPMethodAttribute("checkAvailabilityLevel", "", "ROOM");
> $ pwd
> /cd/d/Quellen/SVN/axis/c/include
> Index: axis/client/Call.hpp
> ===================================================================
> --- axis/client/Call.hpp        (Revision 480584)
> +++ axis/client/Call.hpp        (Arbeitskopie)
> @@ -250,6 +250,8 @@
>                                   const AxisChar * pUri,
>                                   const AxisChar * pValue);
>  
> +    void clearSOAPMethodAttributes();
> +
>      /**
>       * Method for adding complex parameters to the engine, ready to be serialised.
>       *   An example of this method (taken from the automatically generated stubs
> $ pwd            
> /cd/d/Quellen/SVN/axis/c/src/soap
> Index: SoapSerializer.h
> ===================================================================
> --- SoapSerializer.h    (Revision 480584)
> +++ SoapSerializer.h    (Arbeitskopie)
> @@ -197,6 +197,8 @@
>         IHeaderBlock* getNextHeaderBlock();
>  
>         int setSOAPMethodAttribute(Attribute* pAttribute);
> +       void clearSOAPMethodAttributes();
> +
>         SoapMethod* getSOAPMethod();
>      IHeaderBlock* createHeaderBlock(const AxisChar *pachLocalName,
>          const AxisChar *pachUri);
> Index: SoapMethod.h
> ===================================================================
> --- SoapMethod.h        (Revision 480584)
> +++ SoapMethod.h        (Arbeitskopie)
> @@ -89,12 +89,19 @@
>      virtual ~SoapMethod();
>  
>    /**
> -    * This methos will clear up all the current out params in preperation of a 
> +    * This method will clear up all the current out params in preparation of a 
>      * new method call
>      */
>      void clearOutParams();
> +
> +  /**
> +    * This method will clear up all the current attributes in preparation of a 
> +    * new method call
> +    */
> +    void clearAttributes();
>  };
>  
>  AXIS_CPP_NAMESPACE_END
>  
>  #endif
> +
> ndex: SoapSerializer.cpp
> ===================================================================
> --- SoapSerializer.cpp  (Revision 480584)
> +++ SoapSerializer.cpp  (Arbeitskopie)
> @@ -1021,6 +1021,15 @@
>      return AXIS_FAIL;
>  }
>  
> +void SoapSerializer::clearSOAPMethodAttributes()
> +{
> +    if (m_pSoapEnvelope && m_pSoapEnvelope->m_pSoapBody &&
> +        m_pSoapEnvelope->m_pSoapBody->m_pSoapMethod)
> +    {
> +        m_pSoapEnvelope->m_pSoapBody->m_pSoapMethod->clearAttributes();
> +    }
> +}
> +
>  int SoapSerializer::serializeAnyObject( AnyType * pAnyObject)
>  {
>      for( int i = 0; i < pAnyObject->_size; i++)
> Index: SoapMethod.cpp
> ===================================================================
> --- SoapMethod.cpp      (Revision 480584)
> +++ SoapMethod.cpp      (Arbeitskopie)
> @@ -225,5 +225,18 @@
>      m_OutputParams.clear();
>  }
>  
> +void SoapMethod::clearAttributes()
> +{
> +    if (m_attributes.empty())
> +        return;
> +
> +    list<Attribute*>::iterator it;
> +
> +    for (it = m_attributes.begin(); it != m_attributes.end(); ++it)
> +       delete *it;
> +
> +    m_attributes.clear();
> +}
> +
>  AXIS_CPP_NAMESPACE_END
>  
> $ pwd
> /cd/d/Quellen/SVN/axis/c/src/engine/client
> Index: Call.cpp
> ===================================================================
> --- Call.cpp    (Revision 480584)
> +++ Call.cpp    (Arbeitskopie)
> @@ -1088,6 +1088,11 @@
>      m_pIWSSZ->setSOAPMethodAttribute( ((Attribute *) pAttribute)->clone());
>  }
>  
> +void Call::clearSOAPMethodAttributes()
> +{
> +    m_pIWSSZ->clearSOAPMethodAttributes();
> +}
> +
>  xsd__string Call::getFaultAsXMLString()
>  {
>      return m_pIWSDZ->getFaultAsXMLString();
> @@ -1229,4 +1234,4 @@
>          it++;
>      }
>      m_soapFaults.clear();
> -}
> \ Kein Zeilenvorschub am Ende der Datei
> +}
> Index: Stub.cpp
> ===================================================================
> --- Stub.cpp    (Revision 480584)
> +++ Stub.cpp    (Arbeitskopie)
> @@ -39,6 +39,7 @@
>      m_pCall->setProtocol (eProtocol);
>      m_pTransport = m_pCall->getTransport ();
>      m_pTransport->setEndpointUri( pcEndPointUri);
> +    m_viCurrentSOAPHeaderBlock = m_vSOAPHeaderBlocks.end();
>      
>      // SSL channel related initilizations
>      char * pcSSLChannelInfo = g_pConfig->getAxisConfProperty( AXCONF_SECUREINFO);

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-dev-help@ws.apache.org


Mime
View raw message