Ignore:
Timestamp:
May 3, 2017, 12:53:06 PM (7 years ago)
Author:
djay
Message:

Commit the minimal requirements for remote HPC support

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/prototype-v0/zoo-project/zoo-kernel/response_print.c

    r821 r822  
    646646void printGetCapabilitiesForProcess(registry *reg, maps* m,xmlNodePtr nc,service* serv){
    647647  xmlNsPtr ns,ns_ows,ns_xml,ns_xlink;
    648   xmlNodePtr n=NULL,nc1,nc2;
     648  xmlNodePtr n=NULL,nc1,nc2,nc3;
    649649  map* version=getMapFromMaps(m,"main","rversion");
    650650  int vid=getVersionId(version->value);
     
    667667      limit=7;
    668668    }
     669    nc3=NULL;
    669670    for(;i<limit;i+=2){
    670671      if(capabilities[vid][i]==NULL)
     
    690691    printDescription(nc1,ns_ows,serv->name,serv->content,vid);
    691692    tmp1=serv->metadata;
    692     while(tmp1!=NULL){
     693
     694    addMetadata(tmp1,nc1,ns_ows,ns_xlink);
     695
     696    /*while(tmp1!=NULL){
    693697      nc2 = xmlNewNode(ns_ows, BAD_CAST "Metadata");
    694       xmlNewNsProp(nc2,ns_xlink,BAD_CAST tmp1->name,BAD_CAST tmp1->value);
    695       xmlAddChild(nc1,nc2);
     698      if(strcmp(tmp1->name,"title")==0 ||
     699         strcmp(tmp1->name,"href")==0 ||
     700         strcmp(tmp1->name,"role")==0 ||
     701         strcmp(tmp1->name,"link_type")==0){
     702        xmlNewNsProp(nc2,ns_xlink,BAD_CAST tmp1->name,BAD_CAST tmp1->value);
     703        xmlAddChild(nc1,nc2);
     704      }else{
     705        if(nc3==NULL)
     706          nc3 = xmlNewNode(ns_ows, BAD_CAST "AdditionalParameter");
     707        xmlNodePtr nc4 = xmlNewNode(ns_ows, BAD_CAST "Name");
     708        xmlAddChild(nc4,xmlNewText(BAD_CAST tmp1->name));
     709        xmlNodePtr nc5 = xmlNewNode(ns_ows, BAD_CAST "Value");
     710        xmlAddChild(nc5,xmlNewText(BAD_CAST tmp1->value));
     711        xmlAddChild(nc3,nc4);
     712        xmlAddChild(nc3,nc5);
     713      }
    696714      tmp1=tmp1->next;
    697     }
    698 
     715      }*/
     716    if(nc3!=NULL)
     717      xmlAddChild(nc1,nc3);
    699718    xmlAddChild(nc,nc1);
    700719  }
     720
    701721}
    702722
     
    734754    }
    735755  }
     756}
     757
     758int addMetadata(map* meta,xmlNodePtr nc,xmlNsPtr ns_ows,xmlNsPtr ns_xlink){
     759    int hasTitle=-1;
     760    int hasValue=-1;
     761    xmlNodePtr nc1;
     762    map* oMeta=meta;
     763    int isAdditionalParameters=-1;
     764    //if(count(oMeta)>=2){
     765    int level=0;
     766    map* test=getMap(meta,"title");
     767    if(test!=NULL)
     768      level+=1;
     769    test=getMap(meta,"href");
     770    if(test!=NULL)
     771      level+=1;
     772    test=getMap(meta,"role");
     773    if(test!=NULL)
     774      level+=1;
     775    if(count(oMeta)>level+1)
     776      isAdditionalParameters=1;
     777    //}
     778    char *ctitle=NULL;
     779    while(meta!=NULL){
     780      if(hasTitle<0)
     781        if(isAdditionalParameters<0)
     782          nc1 = xmlNewNode(ns_ows, BAD_CAST "Metadata");
     783        else
     784          if(hasValue<0)
     785            nc1 = xmlNewNode(ns_ows, BAD_CAST "AdditionalParameters");
     786      if(strncasecmp(meta->name,"title",5)==0 ||
     787         strcasecmp(meta->name,"href")==0 ||
     788         strcasecmp(meta->name,"role")==0 ){
     789        int index=5;
     790        if(strncasecmp(meta->name,"title",5)==0){
     791          index=6;
     792          hasTitle=1;
     793          if(ctitle!=NULL && strcasecmp(meta->value,ctitle)!=0){
     794              xmlAddChild(nc,nc1);
     795              nc1 = xmlNewNode(ns_ows, BAD_CAST "AdditionalParameters");
     796              free(ctitle);
     797              ctitle=NULL;
     798          }
     799          if(ctitle==NULL){
     800            char *tmp=(char*)malloc((strlen(meta->name)+1)*sizeof(char));
     801            snprintf(tmp,index,"%s",meta->name);
     802            xmlNewNsProp(nc1,ns_xlink,BAD_CAST tmp,BAD_CAST meta->value);
     803            free(tmp);
     804          }       
     805          if(ctitle!=NULL)
     806            free(ctitle);
     807          ctitle=zStrdup(meta->value);
     808        }
     809      }else{
     810        xmlNodePtr nc2 = xmlNewNode(ns_ows, BAD_CAST "AdditionalParameter");
     811        xmlNodePtr nc3 = xmlNewNode(ns_ows, BAD_CAST "Name");
     812        xmlAddChild(nc3,xmlNewText(BAD_CAST meta->name));
     813        xmlNodePtr nc4 = xmlNewNode(ns_ows, BAD_CAST "Value");
     814        xmlAddChild(nc4,xmlNewText(BAD_CAST meta->value));
     815        xmlAddChild(nc2,nc3);
     816        xmlAddChild(nc2,nc4);
     817        xmlAddChild(nc1,nc2);
     818        hasTitle=-1;
     819      }
     820      meta=meta->next;
     821      if(hasTitle<0){
     822        if(isAdditionalParameters)
     823          xmlAddChild(nc,nc1);
     824        hasValue=1;
     825      }
     826    }
     827    if(oMeta!=NULL && hasValue<0 && nc1!=NULL){
     828      xmlAddChild(nc,nc1);
     829    }
    736830}
    737831
     
    843937    tmp1=serv->metadata;
    844938    while(tmp1!=NULL){
    845       nc1 = xmlNewNode(ns_ows, BAD_CAST "Metadata");
     939      addMetadata(tmp1,nc,ns_ows,ns_xlink);
     940      /*nc1 = xmlNewNode(ns_ows, BAD_CAST "Metadata");
    846941      xmlNewNsProp(nc1,ns_xlink,BAD_CAST tmp1->name,BAD_CAST tmp1->value);
    847       xmlAddChild(nc,nc1);
     942      xmlAddChild(nc,nc1);*/
    848943      tmp1=tmp1->next;
    849944    }
     
    855950    }
    856951  }else{
     952    tmp1=serv->metadata;
     953    addMetadata(tmp1,nc,ns_ows,ns_xlink);
    857954    addInheritedMetadata(nc,ns_ows,ns_xlink,reg,m,serv);
    858955  }
     
    13401437        xmlNsPtr ns_xlink=usedNs[xlinkId];
    13411438
    1342         while(metadata!=NULL){
    1343           nc6=xmlNewNode(ns_ows, BAD_CAST "Metadata");
    1344           xmlNewNsProp(nc6,ns_xlink,BAD_CAST metadata->name,BAD_CAST metadata->value);
    1345           xmlAddChild(nc2,nc6);
    1346           metadata=metadata->next;
    1347         }
     1439        dumpMap(metadata);
     1440        addMetadata(metadata,nc2,ns_ows,ns_xlink);
    13481441
    13491442      }
     
    19822075    elements* ecurs=getElements(e,(e!=NULL?e->name:m->name));
    19832076    ecurs=ecurs->child;
    1984     while(curs!=NULL){
     2077    while(curs!=NULL/* && ecurs!=NULL*/){
    19852078      ecurs=getElements(ecurs,(curs->name));
    19862079      map* inRequest=getMap(curs->content,"inRequest");
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