Ignore:
Timestamp:
Feb 12, 2014, 3:25:15 PM (10 years ago)
Author:
djay
Message:

Add the optional Ruby Language Support to the ZOO-Kernel with an API similar to the Python ZOO-API. Small rewrite of Python support. Fix issue #86 and #87. Add usid in [lenv] section, this value is used to generate an unique identifier based on time and the process identifier. This usid is now used to name the stored result or the mapfile generated. Remove *some* warning messages displayed at compilation time.

File:
1 edited

Legend:

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

    r446 r453  
    3535#ifndef snprintf
    3636#define snprintf sprintf_s
     37#endif
     38#define zStrdup _strdup
     39#define zMkdir _mkdir
     40#define zOpen _open
     41#define zWrite _write
    3742#else
    38 
    39 #endif
     43#define zStrdup strdup
     44#define zMkdir mkdir
    4045#endif
    4146
     
    5358#include <stdio.h>
    5459#include <string.h>
    55 
    5660#ifndef WIN32
    5761#define bool int
     
    176180  static map* createMap(const char* name,const char* value){
    177181    map* tmp=(map *)malloc(MAP_SIZE);
    178     tmp->name=strdup(name);
    179     tmp->value=strdup(value);
     182    tmp->name=zStrdup(name);
     183    tmp->value=zStrdup(value);
    180184    tmp->next=NULL;
    181185    return tmp;
     
    253257    int i=0;
    254258    while(curs!=NULL){
    255       if(i==0)
    256         if(type==0)
    257           sprintf(dataInputsKVP,"%s=",curs->name);
    258         else
    259           sprintf(dataInputsKVP,"%s",curs->name);
    260       else{
    261         char *temp=strdup(dataInputsKVP);
    262         if(type==0)
    263           sprintf(dataInputsKVP,"%s;%s=",temp,curs->name);
    264         else
    265           sprintf(dataInputsKVP,"%s;%s",temp,curs->name);
    266         free(temp);
    267       }
    268       map* icurs=curs->content;
    269       if(type==0){
    270         char *temp=strdup(dataInputsKVP);
    271         if(getMap(m->content,"xlink:href")!=NULL)
    272           sprintf(dataInputsKVP,"%sReference",temp);
    273         else
    274           sprintf(dataInputsKVP,"%s%s",temp,icurs->value);
    275         free(temp);
    276       }
    277       while(icurs!=NULL){
    278         if(strcasecmp(icurs->name,"value")!=0 &&
    279            strcasecmp(icurs->name,"Reference")!=0 &&
    280            strcasecmp(icurs->name,"minOccurs")!=0 &&
    281            strcasecmp(icurs->name,"maxOccurs")!=0 &&
    282            strcasecmp(icurs->name,"inRequest")!=0){
    283           char *itemp=strdup(dataInputsKVP);
    284           sprintf(dataInputsKVP,"%s@%s=%s",itemp,icurs->name,icurs->value);
    285           free(itemp);
     259      map *inRequest=getMap(curs->content,"inRequest");
     260      if(strncasecmp(inRequest->value,"true",4)==0){
     261        if(i==0)
     262          if(type==0)
     263            sprintf(dataInputsKVP,"%s=",curs->name);
     264          else
     265            sprintf(dataInputsKVP,"%s",curs->name);
     266        else{
     267          char *temp=zStrdup(dataInputsKVP);
     268          if(type==0)
     269            sprintf(dataInputsKVP,"%s;%s=",temp,curs->name);
     270          else
     271            sprintf(dataInputsKVP,"%s;%s",temp,curs->name);
     272          free(temp);
    286273        }
    287         icurs=icurs->next;
     274        map* icurs=curs->content;
     275        if(type==0){
     276          char *temp=zStrdup(dataInputsKVP);
     277          if(getMap(m->content,"xlink:href")!=NULL)
     278            sprintf(dataInputsKVP,"%sReference",temp);
     279          else
     280            sprintf(dataInputsKVP,"%s%s",temp,icurs->value);
     281          free(temp);
     282        }
     283        while(icurs!=NULL){
     284          if(strcasecmp(icurs->name,"value")!=0 &&
     285             strcasecmp(icurs->name,"Reference")!=0 &&
     286             strcasecmp(icurs->name,"minOccurs")!=0 &&
     287             strcasecmp(icurs->name,"maxOccurs")!=0 &&
     288             strcasecmp(icurs->name,"inRequest")!=0){
     289            char *itemp=zStrdup(dataInputsKVP);
     290            sprintf(dataInputsKVP,"%s@%s=%s",itemp,icurs->name,icurs->value);
     291            free(itemp);
     292          }
     293          icurs=icurs->next;
     294        }
    288295      }
    289296      curs=curs->next;
     
    469476      if(tmp->value!=NULL)
    470477        free(tmp->value);
    471       tmp->value=strdup(v);
     478      tmp->value=zStrdup(v);
    472479    }
    473480  }
     
    574581    if(_cursor!=NULL){
    575582      res=(maps*)malloc(MAPS_SIZE);
    576       res->name=strdup(_cursor->name);
     583      res->name=zStrdup(_cursor->name);
    577584      res->content=NULL;
    578585      res->next=NULL;
     
    723730        if(_ztmpm->value!=NULL)
    724731          free(_ztmpm->value);
    725         _ztmpm->value=strdup(value);
     732        _ztmpm->value=zStrdup(value);
    726733      }else{
    727734        addToMap(_tmpm->content,subkey,value);
     
    729736    }else{
    730737      maps *tmp=(maps*)malloc(MAPS_SIZE);
    731       tmp->name=strdup(key);
     738      tmp->name=zStrdup(key);
    732739      tmp->content=createMap(subkey,value);
    733740      tmp->next=NULL;
     
    779786#endif
    780787      tmp=(elements*)malloc(ELEMENTS_SIZE);
    781       tmp->name=strdup(e->name);
     788      tmp->name=zStrdup(e->name);
    782789      tmp->content=NULL;
    783790      addMapToMap(&tmp->content,e->content);
    784791      tmp->metadata=NULL;
    785792      addMapToMap(&tmp->metadata,e->metadata);
    786       tmp->format=strdup(e->format);
     793      tmp->format=zStrdup(e->format);
    787794      if(e->defaults!=NULL){
    788795        tmp->defaults=(iotype*)malloc(IOTYPE_SIZE);
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