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,