axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sanj...@apache.org
Subject cvs commit: xml-axis/c/src/engine Axis.cpp
Date Thu, 17 Jul 2003 04:19:09 GMT
sanjaya     2003/07/16 21:19:09

  Modified:    c/src/engine Axis.cpp
  Log:
  added routine to read and dispath wsdls
  
  Revision  Changes    Path
  1.3       +68 -4     xml-axis/c/src/engine/Axis.cpp
  
  Index: Axis.cpp
  ===================================================================
  RCS file: /home/cvs/xml-axis/c/src/engine/Axis.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Axis.cpp	2 Jul 2003 04:54:22 -0000	1.2
  +++ Axis.cpp	17 Jul 2003 04:19:09 -0000	1.3
  @@ -1,18 +1,82 @@
   #include "AxisEngine.h"
   #include "../common/Debug.h"
  +#include <stdio.h>
  +#include <stdlib.h>
  +#include <malloc.h>
   
   unsigned char chEBuf[1024];
   
   extern "C" int process(soapstream *str)
   {
  -  
  +	
   	AxisEngine* engine = AxisEngine::GetAxisEngine();	
   	int ret = FAIL;
  -	if (engine)
  +	//the location of the wsdl hardcoded
  +	char * wsdlloc = "e:\\Axis\\Calculator.wsdl";
  +	//char pointer to which the wsdl file will be read
  +	char * wsdl = NULL;
  +	FILE * outfile;
  +	const int bytestoread = 6;
  +	char oneword [bytestoread];
  +	oneword[bytestoread-1] = '\0';
  +
  +	switch(str->trtype)
   	{
  -		ret = engine->Process(str);
  -    DEBUG1("ret = engine->Process(str);");
  +		case APTHTTP:
  +			if(str->so.http.ip_method==POST)
  +			{
  +				if (engine)
  +				{
  +					ret = engine->Process(str);
  +				    DEBUG1("ret = engine->Process(str);");
  +					ret = SUCCESS;
  +				}
  +			}
  +
  +			if(str->so.http.ip_method==GET)
  +			{
  +				if((outfile = fopen(wsdlloc,"r"))==NULL)
  +				{
  +					//handle the error
  +					str->so.http.op_soap = "Error in reading wsdl file";		
  +				}
  +				else
  +				{
  +					int charcount = 0;
  +					int acc = 0;
  +
  +						while((charcount=fread(oneword,1,bytestoread-1, outfile)) != 0)
  +						{
  +							if(wsdl==NULL)
  +							{
  +								acc += charcount;
  +								wsdl = (char *)realloc(wsdl,acc);
  +								wsdl = strcpy(wsdl,oneword);
  +							}
  +							else
  +							{
  +								wsdl = (char *)realloc(wsdl,acc+charcount);
  +								*(wsdl+(acc))='\0';
  +								acc += charcount;
  +								wsdl = strncat(wsdl, oneword,charcount);
  +							}
  +						}
  +					//assign the char pointer that contains the 
  +					//wsdl file to the response
  +					str->so.http.op_soap = wsdl;		
  +					ret = SUCCESS;
  +					fclose(outfile);
  +					//free (wsdl);
  +				}
  +			}
  +		break;
  +
  +		default:
  +			//str->so.http.op_soap = "Unknown protocol";		
  +		break;
  +
   	}
  +
   	//str->op_soap = chEBuf;
   	return ret;
   }
  
  
  

Mime
View raw message