Ignore:
Timestamp:
Jan 8, 2011, 2:12:24 PM (13 years ago)
Author:
djay
Message:

Add support for multiple outputs format for DescribeProcess? and Execute requests. Note that currently if RawDataOutput? is asked, then only first output can be returned.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/zoo-kernel/service_internal.c

    r64 r65  
    11261126    int i;
    11271127    maps* mcursor=inputs;
    1128     elements* scursor=serv->inputs;
     1128    elements* scursor=NULL;
    11291129    while(mcursor!=NULL /*&& scursor!=NULL*/){
     1130      scursor=getElements(serv->inputs,mcursor->name);
    11301131      printIOType(doc,nc,ns,ns_ows,scursor,mcursor,"Input");
    11311132      mcursor=mcursor->next;
    1132       //scursor=scursor->next;
    11331133    }
    11341134    xmlAddChild(n,nc);
     
    11401140    nc = xmlNewNode(ns, BAD_CAST "OutputDefinitions");
    11411141    mcursor=outputs;
    1142     scursor=serv->outputs;
    1143     while(mcursor!=NULL /*&& scursor!=NULL*/){
     1142    scursor=NULL;
     1143    while(mcursor!=NULL){
     1144      scursor=getElements(serv->outputs,mcursor->name);
    11441145      printOutputDefinitions1(doc,nc,ns,ns_ows,scursor,mcursor,"Output");
    11451146      mcursor=mcursor->next;
    1146       //scursor=scursor->next;
    11471147    }
    11481148    xmlAddChild(n,nc);
     
    11601160    elements* scursor=serv->outputs;
    11611161    while(mcursor!=NULL){
     1162      scursor=getElements(serv->outputs,mcursor->name);
    11621163      printIOType(doc,nc,ns,ns_ows,scursor,mcursor,"Output");
    11631164      mcursor=mcursor->next;
     
    12641265  xmlNodePtr nc1,nc2,nc3;
    12651266  nc1=xmlNewNode(ns_wps, BAD_CAST type);
    1266   map *tmp=e->content;
     1267  map *tmp=NULL;
     1268  if(e!=NULL)
     1269    tmp=e->content;
     1270  else
     1271    tmp=m->content;
    12671272#ifdef DEBUG
    12681273  dumpMap(tmp);
     
    12701275#endif
    12711276  nc2=xmlNewNode(ns_ows, BAD_CAST "Identifier");
    1272   nc3=xmlNewText(BAD_CAST e->name);
     1277  if(e!=NULL)
     1278    nc3=xmlNewText(BAD_CAST e->name);
     1279  else
     1280    nc3=xmlNewText(BAD_CAST m->name);
    12731281  xmlAddChild(nc2,nc3);
    12741282  xmlAddChild(nc1,nc2);
    12751283  xmlAddChild(nc,nc1);
    12761284  // Extract Title required to be first element in the ZCFG file !
    1277   nc2=xmlNewNode(ns_ows, BAD_CAST tmp->name);
    1278   nc3=xmlNewText(BAD_CAST _ss(tmp->value));
    1279   xmlAddChild(nc2,nc3); 
    1280   xmlAddChild(nc1,nc2);
    1281   // Extract Abstract required to be second element in the ZCFG file !
    1282   // For GRASS it can be empty ...
    1283   if(tmp->next!=NULL){
    1284     tmp=tmp->next;
     1285  bool isTitle=true;
     1286  if(e!=NULL)
     1287    tmp=getMap(e->content,"Title");
     1288  else
     1289    tmp=getMap(m->content,"Title");
     1290 
     1291  if(tmp!=NULL){
     1292    nc2=xmlNewNode(ns_ows, BAD_CAST tmp->name);
     1293    nc3=xmlNewText(BAD_CAST _ss(tmp->value));
     1294    xmlAddChild(nc2,nc3); 
     1295    xmlAddChild(nc1,nc2);
     1296  }
     1297
     1298  if(e!=NULL)
     1299    tmp=getMap(e->content,"Abstract");
     1300  else
     1301    tmp=getMap(m->content,"Abstract");
     1302  if(tmp!=NULL){
    12851303    nc2=xmlNewNode(ns_ows, BAD_CAST tmp->name);
    12861304    nc3=xmlNewText(BAD_CAST _ss(tmp->value));
     
    12881306    xmlAddChild(nc1,nc2);
    12891307    xmlAddChild(nc,nc1);
    1290     tmp=tmp->next;
    12911308  }
    12921309
     
    13001317  if(tmpMap==NULL){
    13011318    nc2=xmlNewNode(ns_wps, BAD_CAST "Data");
    1302     if(strncasecmp(e->format,"LITERALOUTPUT",strlen(e->format))==0)
    1303       nc3=xmlNewNode(ns_wps, BAD_CAST "LiteralData");
    1304     else
    1305       if(strncasecmp(e->format,"COMPLEXOUTPUT",strlen(e->format))==0)
    1306         nc3=xmlNewNode(ns_wps, BAD_CAST "ComplexData");
     1319    if(e!=NULL){
     1320      if(strncasecmp(e->format,"LITERALOUTPUT",strlen(e->format))==0)
     1321        nc3=xmlNewNode(ns_wps, BAD_CAST "LiteralData");
    13071322      else
    1308         nc3=xmlNewNode(ns_wps, BAD_CAST e->format);
     1323        if(strncasecmp(e->format,"COMPLEXOUTPUT",strlen(e->format))==0)
     1324          nc3=xmlNewNode(ns_wps, BAD_CAST "ComplexData");
     1325        else
     1326          nc3=xmlNewNode(ns_wps, BAD_CAST e->format);
     1327    }
     1328    else{
     1329      map* tmpV=getMapFromMaps(m,"format","value");
     1330      if(tmpV!=NULL)
     1331        nc3=xmlNewNode(ns_wps, BAD_CAST tmpV->value);
     1332      else
     1333        nc3=xmlNewNode(ns_wps, BAD_CAST "LitteralData");
     1334    }
    13091335    tmp=m->content;
    13101336    while(tmp!=NULL){
     
    13141340         strncasecmp(tmp->name,"status",strlen(tmp->name))!=0 &&
    13151341         strncasecmp(tmp->name,"storeExecuteResponse",strlen(tmp->name))!=0 &&
    1316          strncasecmp(tmp->name,"extension",strlen(tmp->name))!=0)
     1342         strncasecmp(tmp->name,"extension",strlen(tmp->name))!=0 &&
     1343         strncasecmp(tmp->name,"format",strlen(tmp->name))!=0 &&
     1344         strncasecmp(tmp->name,"Title",strlen(tmp->name))!=0 &&
     1345         strncasecmp(tmp->name,"Abstract",strlen(tmp->name))!=0 &&
     1346         strncasecmp(tmp->name,"size",strlen(tmp->name))!=0)
    13171347        xmlNewProp(nc3,BAD_CAST tmp->name,BAD_CAST tmp->value);
    13181348      tmp=tmp->next;
    13191349      xmlAddChild(nc2,nc3);
    13201350    }
    1321     tmp=getMap(e->defaults->content,"mimeType");
     1351    if(e!=NULL)
     1352      tmp=getMap(e->defaults->content,"mimeType");
     1353    else
     1354      tmp=NULL;
    13221355    map* tmp1=getMap(m->content,"encoding");
    13231356    map* tmp2=getMap(m->content,"mimeType");
     
    13571390    while(tmp!=NULL){
    13581391      if(strncasecmp(tmp->name,"value",strlen(tmp->name))!=0 &&
    1359          strncasecmp(tmp->name,"reference",strlen(tmp->name))!=0 &&
    13601392         strncasecmp(tmp->name,"extension",strlen(tmp->name))!=0 &&
    1361          strncasecmp(tmp->name,"abstract",strlen(tmp->name))!=0 &&
     1393         strncasecmp(tmp->name,"asReference",strlen(tmp->name))!=0 &&
    13621394         strncasecmp(tmp->name,"status",strlen(tmp->name))!=0 &&
    13631395         strncasecmp(tmp->name,"storeExecuteResponse",strlen(tmp->name))!=0 &&
    1364          strncasecmp(tmp->name,"asReference",strlen(tmp->name))!=0)
     1396         strncasecmp(tmp->name,"extension",strlen(tmp->name))!=0 &&
     1397         strncasecmp(tmp->name,"format",strlen(tmp->name))!=0 &&
     1398         strncasecmp(tmp->name,"Title",strlen(tmp->name))!=0 &&
     1399         strncasecmp(tmp->name,"Abstract",strlen(tmp->name))!=0 &&
     1400         strncasecmp(tmp->name,"size",strlen(tmp->name))!=0)
    13651401        xmlNewProp(nc3,BAD_CAST tmp->name,BAD_CAST tmp->value);
    13661402      tmp=tmp->next;
Note: See TracChangeset for help on using the changeset viewer.

Search

Context Navigation

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png