You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by da...@apache.org on 2004/04/08 08:27:59 UTC

cvs commit: ws-axis/c/src/common Packet.cpp

damitha     2004/04/07 23:27:59

  Modified:    c/src/common Packet.cpp
  Log:
  replaced indent tabs with spaces; added apache 2 licence.
  
  Revision  Changes    Path
  1.13      +106 -146  ws-axis/c/src/common/Packet.cpp
  
  Index: Packet.cpp
  ===================================================================
  RCS file: /home/cvs/ws-axis/c/src/common/Packet.cpp,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- Packet.cpp	24 Mar 2004 06:57:31 -0000	1.12
  +++ Packet.cpp	8 Apr 2004 06:27:59 -0000	1.13
  @@ -1,58 +1,18 @@
  +/* -*- C++ -*- */
   /*
  - * The Apache Software License, Version 1.1
  - *
  - *
  - * Copyright (c) 2002 The Apache Software Foundation.  All rights
  - * reserved.
  - *
  - * Redistribution and use in source and binary forms, with or without
  - * modification, are permitted provided that the following conditions
  - * are met:
  - *
  - * 1. Redistributions of source code must retain the above copyright
  - *    notice, this list of conditions and the following disclaimer.
  - *
  - * 2. Redistributions in binary form must reproduce the above copyright
  - *    notice, this list of conditions and the following disclaimer in
  - *    the documentation and/or other materials provided with the
  - *    distribution.
  - *
  - * 3. The end-user documentation included with the redistribution,
  - *    if any, must include the following acknowledgment:
  - *       "This product includes software developed by the
  - *        Apache Software Foundation (http://www.apache.org/)."
  - *    Alternately, this acknowledgment may appear in the software itself,
  - *    if and wherever such third-party acknowledgments normally appear.
  - *
  - * 4. The names "SOAP" and "Apache Software Foundation" must
  - *    not be used to endorse or promote products derived from this
  - *    software without prior written permission. For written
  - *    permission, please contact apache@apache.org.
  - *
  - * 5. Products derived from this software may not be called "Apache",
  - *    nor may "Apache" appear in their name, without prior written
  - *    permission of the Apache Software Foundation.
  - *
  - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  - * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  - * SUCH DAMAGE.
  - * ====================================================================
  - *
  - * This software consists of voluntary contributions made by many
  - * individuals on behalf of the Apache Software Foundation.  For more
  - * information on the Apache Software Foundation, please see
  - * <http://www.apache.org/>.
  - *
  + *   Copyright 2003-2004 The Apache Software Foundation.
    *
  + *   Licensed 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.
    *
    *
    * @author Susantha Kumara (skumara@virtusa.com)
  @@ -69,98 +29,98 @@
   extern "C"
   {
   
  -/**
  - * This method is used to add a transport specific property to a stream object for Axis supported protocols
  - * such as http. For an example "Content-Length" for http. For other protocols there should be a way to
  - * set these properties and its upto the transport module implementation to have those required methods. 
  - */ 
  -int set_property(Ax_soapstream* stream, char * pchkey, char * pchvalue)
  -{
  -	int count;
  -	Ax_header *temp;
  -	switch (stream->trtype)
  -	{
  -	case APTHTTP:
  -		count = stream->so.http->op_headercount;
  -		temp = stream->so.http->op_headers;
  -		if(stream->so.http->op_headers)
  -			stream->so.http->op_headers = (Ax_header*)realloc(temp, 
  -											(sizeof(Ax_header)*(count+1)));
  -		else
  -			stream->so.http->op_headers = (Ax_header*)malloc((sizeof(Ax_header)*(count+1)));        
  -		stream->so.http->op_headers[count].headername = pchkey;
  -		stream->so.http->op_headers[count].headervalue = pchvalue;
  -		stream->so.http->op_headercount = count+1;
  -		return 0;
  -	case APTSMTP:
  -		return -1;
  -	default:
  -		return -1;
  -	}
  -}
  -
  -/**
  - * This method is used to remove all transport specific properties from a stream object for Axis supported protocols
  - * such as http. For an example "SOAPAction" for http. 
  - */ 
  -void remove_all_properties(Ax_soapstream* stream)
  -{
  -	switch (stream->trtype)
  -	{
  -	case APTHTTP:
  -		if (stream->so.http->ip_headercount > 0)
  -		{
  -			stream->so.http->ip_headercount = 0;
  -			free(stream->so.http->ip_headers);
  -			stream->so.http->ip_headers = NULL;
  -		}
  -		if (stream->so.http->op_headercount > 0)
  -		{
  -			stream->so.http->op_headercount = 0;
  -			free(stream->so.http->op_headers);
  -			stream->so.http->op_headers = NULL;
  -		}
  -		break;
  -	case APTSMTP:
  -		break;
  -	default:
  -		break;
  -	}
  -}
  -
  -const char* get_property(const Ax_soapstream* stream,const char* pchkey)
  -{
  -	const Ax_header* hdrs = NULL;
  -	int count = 0;
  -	switch (stream->trtype)
  -	{
  -	case APTHTTP:
  -		hdrs = stream->so.http->ip_headers;
  -		count = stream->so.http->ip_headercount;
  -		break;
  -	case APTFTP:
  -		//TODO
  -		break;
  -	case APTSMTP:
  -		//TODO
  -		break;
  -	default:; //some error condition
  -	}
  -
  -	if(count==0 || hdrs==NULL)
  -	{
  -		return NULL;
  -	}
  -
  -	for (int ix=0; ix<count; ix++)
  -	{
  -		if (strcmp((hdrs+ix)->headername, pchkey) == 0)
  -		{
  -			return (hdrs+ix)->headervalue;
  -		}
  -
  -	}
  -	return NULL;
  -}
  +/*
  + * This method is used to add a transport specific property to a stream object 
  + * for Axis supported protocols such as http. For an example "Content-Length" 
  + * for http. For other protocols there should be a way to set these properties 
  + * and its upto the transport module implementation to have those required 
  + * methods. 
  + */
  +    int set_property (Ax_soapstream* stream, char* pchkey, char* pchvalue)
  +    {
  +        int count;
  +        Ax_header* temp;
  +        switch (stream->trtype)
  +        {
  +            case APTHTTP:
  +                count = stream->so.http->op_headercount;
  +                temp = stream->so.http->op_headers;
  +                if (stream->so.http->op_headers)
  +                    stream->so.http->op_headers = (Ax_header*) realloc(temp,
  +                        (sizeof(Ax_header) * (count + 1)));
  +                else
  +                    stream->so.http->op_headers = (Ax_header *)
  +                        malloc ((sizeof (Ax_header) * (count + 1)));
  +                stream->so.http->op_headers[count].headername = pchkey;
  +                stream->so.http->op_headers[count].headervalue = pchvalue;
  +                stream->so.http->op_headercount = count + 1;
  +                return 0;
  +            case APTSMTP:return -1;
  +            default:return -1;
  +        }
  +    }
   
  +/*
  + * This method is used to remove all transport specific properties from a stream
  + * object for Axis supported protocols such as http. For an example "SOAPAction"
  + * for http. 
  + */
  +    void remove_all_properties (Ax_soapstream* stream)
  +    {
  +        switch (stream->trtype)
  +        {
  +            case APTHTTP:
  +                if (stream->so.http->ip_headercount > 0)
  +                {
  +                    stream->so.http->ip_headercount = 0;
  +                    free (stream->so.http->ip_headers);
  +                    stream->so.http->ip_headers = NULL;
  +                }
  +                if (stream->so.http->op_headercount > 0)
  +                {
  +                    stream->so.http->op_headercount = 0;
  +                    free (stream->so.http->op_headers);
  +                    stream->so.http->op_headers = NULL;
  +                }
  +                break;
  +            case APTSMTP:
  +                break;
  +            default:
  +                break;
  +        }
  +    }
  +
  +    const char* get_property (const Ax_soapstream* stream, const char* pchkey)
  +    {
  +        const Ax_header* hdrs = NULL;
  +        int count = 0;
  +        switch (stream->trtype)
  +        {
  +            case APTHTTP:
  +                hdrs = stream->so.http->ip_headers;
  +                count = stream->so.http->ip_headercount;
  +                break;
  +            case APTFTP:
  +                //TODO
  +                break;
  +            case APTSMTP:
  +                //TODO
  +                break;
  +            default:; //some error condition
  +        }
  +
  +        if (count == 0 || hdrs == NULL)
  +        {
  +            return NULL;
  +        }
  +
  +        for (int ix = 0; ix < count; ix++)
  +        {
  +            if (strcmp ((hdrs + ix)->headername, pchkey) == 0)
  +            {
  +                return (hdrs + ix)->headervalue;
  +            }
  +        }
  +        return NULL;
  +    }
   }