Ignore:
Timestamp:
Apr 9, 2015, 5:23:06 AM (9 years ago)
Author:
djay
Message:

Major update. Creation of a basic parsing api. Call validateRequest after fork if any.

File:
1 edited

Legend:

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

    r620 r621  
    12491249    if(tmp1!=NULL)
    12501250      xmlNewNsProp(nc1,ns,BAD_CAST "processVersion",BAD_CAST tmp1->value);
     1251    else
     1252      xmlNewNsProp(nc1,ns,BAD_CAST "processVersion",BAD_CAST "1");
    12511253    map* tmp3=getMapFromMaps(m,"lenv","level");
    12521254    addPrefix(m,tmp3,serv);
     
    13011303    else{
    13021304      if(j>0)
    1303         xmlNewProp(nc,BAD_CAST tmp4[j],BAD_CAST "false");     
     1305        xmlNewProp(nc,BAD_CAST tmp4[j],BAD_CAST "true");
     1306      else
     1307        xmlNewNsProp(nc,ns,BAD_CAST "processVersion",BAD_CAST "1");
    13041308    }
    13051309  }
     
    14521456        datatype=1;
    14531457      }
    1454      
     1458
    14551459      if(strncmp(type,"Input",5)==0){
    14561460
     
    15211525                const char* bkt;
    15221526                if ( ( bkt = strchr(pToken, '[') ) != NULL || ( bkt = strchr(pToken, ']') ) != NULL ){
    1523                     strncpy( tmpStr, pToken, bkt - pToken );
    1524                     tmpStr[bkt - pToken] = '\0';
    1525                   }
     1527                  strncpy( tmpStr, pToken, bkt - pToken );
     1528                  tmpStr[bkt - pToken] = '\0';
     1529                }
    15261530              }
    15271531              xmlAddChild(nc7,xmlNewText(BAD_CAST tmpStr));
     
    16081612       
    16091613      }
    1610    
    16111614     
    1612     int oI=0;
    1613     for(oI=0;oI<13;oI++)
    1614       if((tmp1=getMap(_tmp->content,orderedFields[oI]))!=NULL){
     1615      int oI=0;
     1616      for(oI=0;oI<13;oI++)
     1617        if((tmp1=getMap(_tmp->content,orderedFields[oI]))!=NULL){
    16151618#ifdef DEBUG
    1616         printf("DATATYPE DEFAULT ? %s\n",tmp1->name);
    1617 #endif
    1618         if(strcmp(tmp1->name,"asReference")!=0 &&
    1619            strncasecmp(tmp1->name,"DataType",8)!=0 &&
    1620            strcasecmp(tmp1->name,"extension")!=0 &&
    1621            strcasecmp(tmp1->name,"value")!=0 &&
    1622            strcasecmp(tmp1->name,"AllowedValues")!=0 &&
    1623            strncasecmp(tmp1->name,"range",5)!=0){
    1624           if(datatype!=1){
    1625             char *tmp2=zCapitalize1(tmp1->name);
    1626             nc9 = xmlNewNode(NULL, BAD_CAST tmp2);
    1627             free(tmp2);
    1628           }
    1629           else{
    1630             char *tmp2=zCapitalize(tmp1->name);
    1631             nc9 = xmlNewNode(ns_ows, BAD_CAST tmp2);
    1632             free(tmp2);
    1633           }
    1634           xmlAddChild(nc9,xmlNewText(BAD_CAST tmp1->value));
    1635           xmlAddChild(nc5,nc9);
    1636           if(strcasecmp(tmp1->name,"uom")==0)
    1637             hasUOM1=true;
    1638           hasUOM=true;
    1639         }else
     1619          printf("DATATYPE DEFAULT ? %s\n",tmp1->name);
     1620#endif
     1621          if(strcmp(tmp1->name,"asReference")!=0 &&
     1622             strncasecmp(tmp1->name,"DataType",8)!=0 &&
     1623             strcasecmp(tmp1->name,"extension")!=0 &&
     1624             strcasecmp(tmp1->name,"value")!=0 &&
     1625             strcasecmp(tmp1->name,"AllowedValues")!=0 &&
     1626             strncasecmp(tmp1->name,"range",5)!=0){
     1627            if(datatype!=1){
     1628              char *tmp2=zCapitalize1(tmp1->name);
     1629              nc9 = xmlNewNode(NULL, BAD_CAST tmp2);
     1630              free(tmp2);
     1631            }
     1632            else{
     1633              char *tmp2=zCapitalize(tmp1->name);
     1634              nc9 = xmlNewNode(ns_ows, BAD_CAST tmp2);
     1635              free(tmp2);
     1636            }
     1637            xmlAddChild(nc9,xmlNewText(BAD_CAST tmp1->value));
     1638            xmlAddChild(nc5,nc9);
     1639            if(strcasecmp(tmp1->name,"uom")==0)
     1640              hasUOM1=true;
     1641            hasUOM=true;
     1642          }else
    16401643         
    1641           tmp1=tmp1->next;
    1642       }
     1644            tmp1=tmp1->next;
     1645        }
    16431646   
    16441647   
     
    17921795    }
    17931796   
    1794     if((tmp1=getMap(_tmp->content,"value"))!=NULL){
     1797    if(_tmp!=NULL && (tmp1=getMap(_tmp->content,"value"))!=NULL){
    17951798      nc7 = xmlNewNode(NULL, BAD_CAST "DefaultValue");
    17961799      xmlAddChild(nc7,xmlNewText(BAD_CAST tmp1->value));
     
    32003203         * cf. parseBoundingBox
    32013204         */
    3202         if(strcasecmp(tmpInputs->format,"BoundingBoxData")==0){
     3205        if(tmpInputs->format!=NULL && strcasecmp(tmpInputs->format,"BoundingBoxData")==0){
    32033206          maps* tmpI=getMaps(*out,tmpInputs->name);
    32043207          if(tmpI!=NULL){
     
    35183521    FILE* fo=fopen(fname,"w+");
    35193522    if(fo==NULL){
    3520 #ifdef DEBUG           
     3523#ifdef DEBUG
    35213524      fprintf (stderr, "Failed to open %s for writing: %s\n",fname, strerror(errno));
    35223525#endif
     
    36003603      }
    36013604      for(int i=0;i<atoi(length->value);i++){
    3602        
    36033605        char* fcontent;
    36043606        char *mimeType=NULL;
     
    36083610        char vname1[11];
    36093611        char sname[9];
     3612        char mname[15];
    36103613        char icname[14];
    36113614        char xname[16];
     
    36203623          sprintf(vname,"value_%d",i);
    36213624          sprintf(sname,"size_%d",i);
     3625          sprintf(mname,"mimeType_%d",i);
    36223626          sprintf(icname,"isCached_%d",i);
    36233627          sprintf(xname,"Reference_%d",i);
     
    36253629          sprintf(cname,"cache_file");
    36263630          sprintf(vname,"value");
     3631          sprintf(sname,"size");
     3632          sprintf(mname,"mimeType");
    36273633          sprintf(icname,"isCached");
    3628           sprintf(sname,"size");
    36293634          sprintf(xname,"Reference");
    36303635        }
    36313636
    36323637        map* tmap=getMapFromMaps(*m,"orequests",vname1);
    3633         if((tmp1=getMap(content->content,xname))!=NULL && strcasecmp(tmap->value,tmp1->value)==0 ){
     3638        if((tmp1=getMap(content->content,xname))!=NULL /*&& ((tmap!=NULL && strcasecmp(tmap->value,tmp1->value)==0) )*/){
     3639
    36343640          if(getMap(content->content,icname)==NULL){
    36353641           
     
    36483654              mimeType=strdup("none");
    36493655            else
    3650                   mimeType=strdup(hInternet->ihandle[index].mimeType);       
     3656              mimeType=strdup(hInternet->ihandle[index].mimeType);           
    36513657           
    36523658            map* tmpMap=getMapOrFill(&content->content,vname,"");
     
    36693675            }
    36703676            addToMap(content->content,sname,ltmp1);
     3677            addToMap(content->content,mname,mimeType);
    36713678            addToCache(*m,tmp1->value,fcontent,mimeType,fsize, NULL, 0);
    36723679            free(fcontent);
    36733680            free(mimeType);
    3674             dumpMaps(content);
    36753681            index++;
    36763682
     
    36883694  }
    36893695  return 0;
     3696}
     3697
     3698/**
     3699 * Add a request in the download queue
     3700 *
     3701 * @param m the maps containing the settings of the main.cfg file
     3702 * @param url the url to add to the queue
     3703 */
     3704void addRequestToQueue(maps** m,HINTERNET* hInternet,const char* url,bool req){
     3705  hInternet->waitingRequests[hInternet->nb]=strdup(url);
     3706  if(req)
     3707    InternetOpenUrl(hInternet,hInternet->waitingRequests[hInternet->nb],NULL,0,INTERNET_FLAG_NO_CACHE_WRITE,0);
     3708  maps *oreq=getMaps(*m,"orequests");
     3709  if(oreq==NULL){
     3710    oreq=(maps*)malloc(MAPS_SIZE);
     3711    oreq->name=zStrdup("orequests");
     3712    oreq->content=createMap("value",url);
     3713    oreq->next=NULL;
     3714    addMapsToMaps(m,oreq);
     3715    freeMaps(&oreq);
     3716    free(oreq);
     3717  }else{
     3718    setMapArray(oreq->content,"value",hInternet->nb-1,url);
     3719  }
    36903720}
    36913721
     
    37343764    }
    37353765
    3736   }else{
    3737     hInternet->waitingRequests[hInternet->nb]=strdup(url);
    3738     InternetOpenUrl(hInternet,hInternet->waitingRequests[hInternet->nb],NULL,0,INTERNET_FLAG_NO_CACHE_WRITE,0);
    3739     maps *oreq=getMaps(*m,"orequests");
    3740     if(oreq==NULL){
    3741       oreq=(maps*)malloc(MAPS_SIZE);
    3742       oreq->name=zStrdup("orequests");
    3743       oreq->content=createMap("value",url);
    3744       oreq->next=NULL;
    3745       addMapsToMaps(m,oreq);
    3746       freeMaps(&oreq);
    3747       free(oreq);
    3748     }else{
    3749       setMapArray(oreq->content,"value",hInternet->nb-1,url);
    3750     }
     3766  }else{   
     3767    addRequestToQueue(m,hInternet,url,true);
    37513768    return 0;
    37523769  }
     
    37753792  else{
    37763793    addToMap(*content,"isCached","true");
    3777 
    37783794    map* tmp=getMapFromMaps(*m,"main","cacheDir");
    37793795    if(tmp!=NULL){
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