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 sa...@apache.org on 2003/06/30 16:07:25 UTC

cvs commit: xml-axis/c/src/wsdd WSDDDocument.cpp

sanjaya     2003/06/30 07:07:25

  Modified:    c/src/wsdd WSDDDocument.cpp
  Log:
  Handled Tranport element Response flow handlers and
  cleaned up XMLString::transcode strings
  
  Revision  Changes    Path
  1.2       +103 -62   xml-axis/c/src/wsdd/WSDDDocument.cpp
  
  Index: WSDDDocument.cpp
  ===================================================================
  RCS file: /home/cvs/xml-axis/c/src/wsdd/WSDDDocument.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- WSDDDocument.cpp	25 Jun 2003 05:55:48 -0000	1.1
  +++ WSDDDocument.cpp	30 Jun 2003 14:07:25 -0000	1.2
  @@ -67,6 +67,7 @@
   
   #define toString(X) XMLString::transcode(X)
   #define toXMLCh(X) XMLString::transcode(X)
  +#define REL(X) XMLString::release(X);
   
   
   WSDDDocument::WSDDDocument()
  @@ -80,6 +81,8 @@
   	svsMap = new WSDDServiceMap();
   	tempTr = new WSDDTransport();
   	protocol = APTOTHER;
  +	ch = NULL;
  +	xch = NULL;
   }
   
   WSDDDocument::~WSDDDocument()
  @@ -120,22 +123,28 @@
   							const XMLCh *const qname, 
   							const Attributes &attrs)
   {
  +	ch = XMLString::transcode(localname);
  +	xchName = toXMLCh("name");
  +	xchValue = toXMLCh("value");
  +	xchType = toXMLCh("type");
  +	svsch = toString(attrs.getValue(xchName));
  +
   	switch(lev0)
   	{
   		case WSDD_UNKNOWN:
  -			if(strcmp(XMLString::transcode(localname), "globalConfiguration")==0)
  +
  +			if(strcmp(ch, "globalConfiguration")==0)
   			{
   				lev0=WSDD_GLOBCONF;
   			}
  -			if(strcmp(XMLString::transcode(localname), "service")==0)
  +			if(strcmp(ch, "service")==0)
   			{
   				lev0=WSDD_SERVICE;
   			}
  -			if(strcmp(XMLString::transcode(localname), "transport")==0)
  +			if(strcmp(ch, "transport")==0)
   			{
   				lev0=WSDD_TRANSPORT;
   			}
  -
   			if(lev0==WSDD_UNKNOWN)
   			{
   				break;
  @@ -148,67 +157,69 @@
   	{
   		case WSDD_GLOBCONF:
   			//cout<<"we are in glob conf"<<endl;
  -			if(strcmp(XMLString::transcode(localname), "requestFlow")==0)
  +			if(strcmp(ch, "requestFlow")==0)
   			{
   				globReqFlowHanList = new WSDDHandlerList();
   				lev1=WSDD_REQFLOW;
   			}
  -			if(strcmp(XMLString::transcode(localname), "responseFlow")==0)
  +			if(strcmp(ch, "responseFlow")==0)
   			{
   				globResFlowHanList = new WSDDHandlerList();
   				lev1=WSDD_RESFLOW;
   			}
  +
  +			xch = toXMLCh("type");			
   			switch(lev1)
   			{
   				case WSDD_REQFLOW:
   					//cout<<"we are in glob conf>requestflow"<<endl;
  -					if(strcmp(XMLString::transcode(localname), "handler")==0)
  +					if(strcmp(ch, "handler")==0)
   					{
   						tempHandler = new WSDDHandler();
  -						string sLibName = toString(attrs.getValue(toXMLCh("type")));
  +						string sLibName = toString(attrs.getValue(xch));
   						tempHandler->SetLibName(sLibName);
   						globReqFlowHanList->push_back(tempHandler);
   						tempHandler = NULL;
   					}
   				break;
   				case WSDD_RESFLOW:
  -					if(strcmp(XMLString::transcode(localname), "handler")==0)
  +					if(strcmp(ch, "handler")==0)
   					{
   						tempHandler = new WSDDHandler();
  -						string sLibName = toString(attrs.getValue(toXMLCh("type")));
  +						string sLibName = toString(attrs.getValue(xch));
   						tempHandler->SetLibName(sLibName);
   						globResFlowHanList->push_back(tempHandler);
   						tempHandler = NULL;
   					}
   
   				break;
  -			
   			}
  +			REL(&xch);
   		break;
   
   
   		case WSDD_SERVICE:
  -			if(strcmp(XMLString::transcode(localname), "service")==0)
  +			if(strcmp(ch, "service")==0)
   			{
   				tempService = new WSDDService();
  -				string sSrvName = toString(attrs.getValue(toXMLCh("name")));
  +				string sSrvName = toString(attrs.getValue(xchName));
   				tempService->SetServiceName(sSrvName);
  -				(*svsMap)[toString(attrs.getValue(toXMLCh("name")))]=tempService;
  +				(*svsMap)[toString(attrs.getValue(xchName))]=tempService;
   
   				cout<<toString(attrs.getValue(toXMLCh("name")))<<endl;
   			}
   			//The check for lev1==WSDD_UNKNOWN is necessary because
   			//parameter elements can occur inside handler elements
  -			if(strcmp(XMLString::transcode(localname), "parameter")==0 && (lev1==WSDD_UNKNOWN))
  +			if(strcmp(ch, "parameter")==0 && (lev1==WSDD_UNKNOWN))
   			{
   				lev1=WSDD_PARAM;
   			}
  -			if(strcmp(XMLString::transcode(localname), "requestFlow")==0)
  +			if(strcmp(ch, "requestFlow")==0)
   			{
   				lev1=WSDD_REQFLOW;
   				tempHandlerList = new WSDDHandlerList();
   			}
  -			if(strcmp(XMLString::transcode(localname), "responseFlow")==0)
  +			if(strcmp(ch, "responseFlow")==0)
   			{
   				lev1=WSDD_RESFLOW;
   				tempHandlerList = new WSDDHandlerList();
  @@ -216,18 +227,18 @@
   			switch(lev1)
   			{
   				case WSDD_PARAM:
  -					if(strcmp(toString(attrs.getValue(toXMLCh("name"))), "className")==0)
  +					if(strcmp(svsch, "className")==0)
   					{
  -						string sLibName = toString(attrs.getValue(toXMLCh("value")));
  +						string sLibName = toString(attrs.getValue(xchValue));
   						tempService->SetLibName(sLibName);
   						//cout<<toString(attrs.getValue(toXMLCh("value")))<<" The class name"<<endl;
   					}
  -					if(strcmp(toString(attrs.getValue(toXMLCh("name"))), "allowedMethods")==0)
  +					if(strcmp(svsch, "allowedMethods")==0)
   					{
  -						string sLibName = toString(attrs.getValue(toXMLCh("value")));
  +						string sLibName = toString(attrs.getValue(xchValue));
   						//cout<<toString(attrs.getValue(toXMLCh("value")))<<" The class name"<<endl;
   						
  -						char * x = toString(attrs.getValue(toXMLCh("value")));
  +						char * x = toString(attrs.getValue(xchValue));
   						char * y;
   						if(x)
   						{
  @@ -239,7 +250,7 @@
   								y=strtok(NULL," ");
   							} 
   						}
  -						XMLString::release(&x);
  +						REL(&x);
   						delete y;
   						
   						x=NULL;
  @@ -248,32 +259,32 @@
   				break;
   
   				case WSDD_REQFLOW:
  -					if(strcmp(XMLString::transcode(localname), "handler")==0)
  +					if(strcmp(ch, "handler")==0)
   					{
   						lev2=WSDD_HANDLER;
   						tempHandler = new WSDDHandler();
  -						string sLibName = toString(attrs.getValue(toXMLCh("type")));
  +						string sLibName = toString(attrs.getValue(xchType));
   						tempHandler->SetLibName(sLibName);
   						tempHandlerList->push_back(tempHandler);
   					}
   					switch(lev2)
   					{
   						case WSDD_HANDLER:
  -							if(strcmp(XMLString::transcode(localname), "parameter")==0)
  +							if(strcmp(ch, "parameter")==0)
   							{
  -								tempHandler->SetOption(toString(attrs.getValue(toXMLCh("name"))),
  -														toString(attrs.getValue(toXMLCh("value"))));
  +								tempHandler->SetOption(toString(attrs.getValue(xchName)),
  +														toString(attrs.getValue(xchValue)));
   							}
   						break;
   					}
   				break;
   
   				case WSDD_RESFLOW:
  -					if(strcmp(XMLString::transcode(localname), "handler")==0)
  +					if(strcmp(ch, "handler")==0)
   					{
   						lev2=WSDD_HANDLER;
   						tempHandler = new WSDDHandler();
  -						string sLibName = toString(attrs.getValue(toXMLCh("type")));
  +						string sLibName = toString(attrs.getValue(xchType));
   						tempHandler->SetLibName(sLibName);
   						tempHandlerList->push_back(tempHandler);
   						//tempHandler = NULL;					
  @@ -281,26 +292,27 @@
   					switch(lev2)
   					{
   						case WSDD_HANDLER:
  -							if(strcmp(XMLString::transcode(localname), "parameter")==0)
  +							if(strcmp(ch, "parameter")==0)
   							{
  -								tempHandler->SetOption(toString(attrs.getValue(toXMLCh("name"))),
  -														toString(attrs.getValue(toXMLCh("value"))));
  +								tempHandler->SetOption(toString(attrs.getValue(xchName)),
  +														toString(attrs.getValue(xchValue)));
   							}
   						break;
   					}
   				break;
   			}
  +
   		break;
   
   		case WSDD_TRANSPORT:
  -			if(strcmp(XMLString::transcode(localname), "transport")==0)
  +			if(strcmp(ch, "transport")==0)
   			{
  -				tempHandlerList = new WSDDHandlerList();
  -				if(strcmp(toString(attrs.getValue(toXMLCh("name"))), "http")==0)
  +				//tempHandlerList = new WSDDHandlerList();
  +				if(strcmp(svsch, "http")==0)
   				{
   					protocol =APTHTTP;
   				}
  -				if(strcmp(toString(attrs.getValue(toXMLCh("name"))), "local")==0)
  +				if(strcmp(svsch, "local")==0)
   				{
   					protocol =APTFTP;
   				}
  @@ -310,35 +322,51 @@
   				}
   
   			}
  -			if(strcmp(XMLString::transcode(localname), "requestFlow")==0)
  +			if(strcmp(ch, "requestFlow")==0)
   			{
   				lev1=WSDD_REQFLOW;
  +				tempHandlerList = new WSDDHandlerList();
  +			}
  +			if(strcmp(ch, "responseFlow")==0)
  +			{
  +				lev1=WSDD_RESFLOW;
  +				tempHandlerList = new WSDDHandlerList();
   			}
  -
   			switch(lev1)
   			{
   				case WSDD_REQFLOW:
   					//cout<<"we are in glob conf>requestflow"<<endl;
  -					if(strcmp(XMLString::transcode(localname), "handler")==0)
  +					if(strcmp(ch, "handler")==0)
   					{
  -						lev2=WSDD_HANDLER;
   						tempHandler = new WSDDHandler();
  -						string sLibName = toString(attrs.getValue(toXMLCh("type")));
  +						string sLibName = toString(attrs.getValue(xchType));
   						tempHandler->SetLibName(sLibName);
   						tempHandlerList->push_back(tempHandler);
  -
  +						tempHandler = NULL;
   					}
  -					switch(lev2)
  +				break;
  +
  +				case WSDD_RESFLOW:
  +					//cout<<"we are in glob conf>requestflow"<<endl;
  +					if(strcmp(ch, "handler")==0)
   					{
  -						case WSDD_HANDLER:
  -						break;
  +						tempHandler = new WSDDHandler();
  +						string sLibName = toString(attrs.getValue(xchType));
  +						tempHandler->SetLibName(sLibName);
  +						tempHandlerList->push_back(tempHandler);
  +						tempHandler = NULL;
   					}
  -				break;
  -			
  +				break;				
  +
   			}
   
   		break;
   	}
  +	REL(&ch);
  +	REL(&xchName);
  +	REL(&xchValue);
  +	REL(&xchType);
  +	REL(&svsch);
   
   }	
   
  @@ -346,24 +374,25 @@
   				  const XMLCh *const localname, 
   				  const XMLCh *const qname)
   {
  +	ch = XMLString::transcode(localname);
   	switch (lev0)
   	{
   		case WSDD_GLOBCONF:
  -			if(strcmp(XMLString::transcode(localname), "globalConfiguration")==0)
  +			if(strcmp(ch, "globalConfiguration")==0)
   			{
   				lev0=WSDD_UNKNOWN;
   			}
   			switch(lev1)
   			{
   				case WSDD_REQFLOW:
  -					if(strcmp(XMLString::transcode(localname), "requestFlow")==0)
  +					if(strcmp(ch, "requestFlow")==0)
   					{
   						lev1=WSDD_UNKNOWN;
   					}
   					switch(lev2)
   					{
   						case WSDD_HANDLER:
  -							if(strcmp(toString(localname), "handler")==0)
  +							if(strcmp(ch, "handler")==0)
   							{
   								lev2=WSDD_UNKNOWN;
   							}
  @@ -372,14 +401,14 @@
   					
   				break;
   				case WSDD_RESFLOW:
  -					if(strcmp(XMLString::transcode(localname), "responseFlow")==0)
  +					if(strcmp(ch, "responseFlow")==0)
   					{
   						lev1=WSDD_UNKNOWN;
   					}
   					switch(lev2)
   					{
   						case WSDD_HANDLER:
  -							if(strcmp(toString(localname), "handler")==0)
  +							if(strcmp(ch, "handler")==0)
   							{
   								lev2=WSDD_UNKNOWN;
   							}
  @@ -390,14 +419,14 @@
   		break;
   
   		case WSDD_REQFLOW:
  -			if(strcmp(XMLString::transcode(localname), "requestFlow")==0)
  +			if(strcmp(ch, "requestFlow")==0)
   			{
   				lev0=WSDD_UNKNOWN;
   			}
   		break;
   
   		case WSDD_SERVICE:
  -			if(strcmp(XMLString::transcode(localname), "service")==0)
  +			if(strcmp(ch, "service")==0)
   			{
   				lev0=WSDD_UNKNOWN;
   				tempService = NULL;
  @@ -405,13 +434,13 @@
   			switch(lev1)
   			{
   				case WSDD_PARAM:
  -					if(strcmp(XMLString::transcode(localname), "parameter")==0)
  +					if(strcmp(ch, "parameter")==0)
   					{
   						lev1=WSDD_UNKNOWN;
   					}
   				break;
   				case WSDD_REQFLOW:
  -					if(strcmp(XMLString::transcode(localname), "requestFlow")==0)
  +					if(strcmp(ch, "requestFlow")==0)
   					{
   						lev1=WSDD_UNKNOWN;
   						if(!tempHandlerList->empty())
  @@ -428,7 +457,7 @@
   					switch(lev2)
   					{
   						case WSDD_HANDLER:
  -							if(strcmp(XMLString::transcode(localname), "handler")==0)
  +							if(strcmp(ch, "handler")==0)
   							{
   								lev2=WSDD_UNKNOWN;
   								tempHandler = NULL;
  @@ -438,7 +467,7 @@
   					}
   				break;
   				case WSDD_RESFLOW:
  -					if(strcmp(XMLString::transcode(localname), "responseFlow")==0)
  +					if(strcmp(ch, "responseFlow")==0)
   					{
   						lev1=WSDD_UNKNOWN;
   						if(!tempHandlerList->empty())
  @@ -455,7 +484,7 @@
   					switch(lev2)
   					{
   						case WSDD_HANDLER:
  -							if(strcmp(XMLString::transcode(localname), "handler")==0)
  +							if(strcmp(ch, "handler")==0)
   							{
   								lev2=WSDD_UNKNOWN;
   								tempHandler = NULL;
  @@ -468,7 +497,7 @@
   		break;
   
   		case WSDD_TRANSPORT:
  -			if(strcmp(XMLString::transcode(localname), "transport")==0)
  +			if(strcmp(ch, "transport")==0)
   			{
   				protocol=APTOTHER;
   				lev0=WSDD_UNKNOWN;
  @@ -477,16 +506,28 @@
   			switch(lev1)
   			{
   				case WSDD_REQFLOW:
  -					if(strcmp(XMLString::transcode(localname), "requestFlow")==0)
  +					if(strcmp(ch, "requestFlow")==0)
   					{
   						tempTr->SetRequestFlowHandlers(protocol, tempHandlerList);
   						tempHandlerList = NULL;
   						lev1=WSDD_UNKNOWN;
   					}
   				break;
  +
  +				case WSDD_RESFLOW:
  +					
  +					if(strcmp(ch, "responseFlow")==0)
  +					{
  +						tempTr->SetResponseFlowHandlers(protocol, tempHandlerList);
  +						tempHandlerList = NULL;
  +						lev1=WSDD_UNKNOWN;
  +					}
  +					
  +				break;
   			}
   		break;
   	}
  +	REL(&ch);
   }
   
   void  WSDDDocument::characters (const XMLCh *const chars,