Ignore:
Timestamp:
Feb 3, 2015, 12:59:21 PM (9 years ago)
Author:
djay
Message:

Add otb2zcfg and OTB applications support without observer by now. Fix issue with maxOccurs and multiple downloaded value for the same input.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/zoo-project/zoo-kernel/service.h

    r514 r550  
    566566  }
    567567
     568  static void loadMapBinary(map** out,map* in,int pos){
     569    map* size=getMap(in,"size");
     570    map *lout=*out;
     571    if(size!=NULL && pos>0){
     572      char tmp[11];
     573      sprintf(tmp,"size_%d",pos);
     574      size=getMap(in,tmp);
     575      sprintf(tmp,"value_%d",pos);
     576      map* tmpVin=getMap(in,tmp);
     577      map* tmpVout=getMap(lout,tmp);
     578      free(tmpVout->value);
     579      tmpVout->value=(char*)malloc((atoi(size->value)+1)*sizeof(char));
     580      memmove(tmpVout->value,tmpVin->value,atoi(size->value)*sizeof(char));
     581      tmpVout->value[atoi(size->value)]=0;
     582    }else{
     583      if(size!=NULL){
     584        map* tmpVin=getMap(in,"value");
     585        map* tmpVout=getMap(lout,"value");
     586        free(tmpVout->value);
     587        tmpVout->value=(char*)malloc((atoi(size->value)+1)*sizeof(char));
     588        memmove(tmpVout->value,tmpVin->value,atoi(size->value)*sizeof(char));
     589        tmpVout->value[atoi(size->value)]=0;
     590      }
     591    }
     592  }
     593 
     594  static void loadMapBinaries(map** out,map* in){
     595    map* size=getMap(in,"size");
     596    map* length=getMap(in,"length");
     597    if(length!=NULL){
     598      int len=atoi(length->value);
     599      int i=0;
     600      for(i=0;i<len;i++){
     601        loadMapBinary(out,in,i);
     602      }
     603    }
     604    else
     605      if(size!=NULL)
     606        loadMapBinary(out,in,-1);
     607    char* tmpSized=NULL;
     608   
     609  }
     610
    568611  static maps* dupMaps(maps** mo){
    569612    maps* _cursor=*mo;
     
    575618      res->next=NULL;
    576619      map* mc=_cursor->content;
    577       map* tmp=getMap(mc,"size");
    578       char* tmpSized=NULL;
    579       if(tmp!=NULL){
    580         map* tmpV=getMap(mc,"value");
    581         tmpSized=(char*)malloc((atoi(tmp->value)+1)*sizeof(char));
    582         memmove(tmpSized,tmpV->value,atoi(tmp->value)*sizeof(char));
    583       }
    584620      if(mc!=NULL){
    585621        addMapToMap(&res->content,mc);
    586       }
    587       if(tmp!=NULL){
    588         map* tmpV=getMap(res->content,"value");
    589         free(tmpV->value);
    590         tmpV->value=(char*)malloc((atoi(tmp->value)+1)*sizeof(char));
    591         memmove(tmpV->value,tmpSized,atoi(tmp->value)*sizeof(char));
    592         tmpV->value[atoi(tmp->value)]=0;
    593         free(tmpSized);
     622        loadMapBinaries(&res->content,mc);
    594623      }
    595624      res->next=dupMaps(&_cursor->next);
     
    643672    else
    644673      sprintf(tmp,"%s",key);
    645     map* tmpSize=getMapArray(m,(char*)"size",index);
     674    map* tmpSize=getMapArray(m,"size",index);
    646675    if(tmpSize!=NULL && strncasecmp(key,"value",5)==0){
    647676#ifdef DEBUG
     
    685714    }
    686715
    687     char *tmpV[8]={
     716    char *tmpV[11]={
    688717      (char*)"size",
    689718      (char*)"value",
    690719      (char*)"uom",
    691720      (char*)"Reference",
     721      (char*)"cache_file",
     722      (char*)"fmimeType",
    692723      (char*)"xlink:href",
    693724      typ,
    694725      (char*)"schema",
    695       (char*)"encoding"
     726      (char*)"encoding",
     727      (char*)"isCached"
    696728    };
    697729    sprintf(tmpLen,"%d",len+1);
    698730    addToMap(_cursor->content,"length",tmpLen);
    699731    int i=0;
    700     for(i=0;i<8;i++){
     732    for(i=0;i<11;i++){
    701733      map* tmpVI=getMap(tmp->content,tmpV[i]);
    702734      if(tmpVI!=NULL){
     
    704736        fprintf(stderr,"%s = %s\n",tmpV[i],tmpVI->value);
    705737#endif
    706         if(i<5)
     738        if(i<7)
    707739          setMapArray(_cursor->content,tmpV[i],len,tmpVI->value);
    708740        else
    709           if(strncasecmp(tmpV[5],"mimeType",8)==0)
     741          if(strncasecmp(tmpV[7],"mimeType",8)==0)
    710742            setMapArray(_cursor->content,tmpV[i],len,tmpVI->value);
    711743      }
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