Ignore:
Timestamp:
May 31, 2011, 3:13:53 AM (13 years ago)
Author:
djay
Message:

Add WIN32 platform support. Fix for values containing @ passed as KVP.

File:
1 edited

Legend:

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

    r114 r216  
    2828#pragma once
    2929
     30#ifdef WIN32
     31#define strncasecmp strnicmp
     32#define strcasecmp stricmp
     33#define snprintf sprintf_s
     34#endif
     35
    3036#ifdef __cplusplus
    3137extern "C" {
     
    193199  }
    194200
     201  static map* getLastMap(map* m){
     202    map* tmp=m;
     203    while(tmp!=NULL){
     204      if(tmp->next==NULL){
     205        return tmp;
     206      }
     207      tmp=tmp->next;
     208    }
     209    return NULL;
     210  }
     211
    195212  static map* getMapFromMaps(maps* m,const char* key,const char* subkey){
    196213    maps* _tmpm=getMaps(m,key);
     
    201218    else return NULL;
    202219  }
     220
     221  static char* getMapsAsKVP(maps* m,int length,int type){
     222    char *dataInputsKVP=(char*) malloc(length*sizeof(char));
     223    maps* curs=m;
     224    int i=0;
     225    while(curs!=NULL){
     226      if(i==0)
     227        if(type==0)
     228          sprintf(dataInputsKVP,"%s=",curs->name);
     229        else
     230          sprintf(dataInputsKVP,"%s",curs->name);
     231      else{
     232        char *temp=strdup(dataInputsKVP);
     233        if(type==0)
     234          sprintf(dataInputsKVP,"%s;%s=",temp,curs->name);
     235        else
     236          sprintf(dataInputsKVP,"%s;%s",temp,curs->name);
     237        free(temp);
     238      }
     239      map* icurs=curs->content;
     240      if(type==0){
     241        map* tmp=getMap(curs->content,"value");
     242        char *temp=strdup(dataInputsKVP);
     243        if(getMap(m->content,"xlink:href")!=NULL)
     244          sprintf(dataInputsKVP,"%sReference",temp);
     245        else
     246          sprintf(dataInputsKVP,"%s%s",temp,icurs->value);
     247        free(temp);
     248      }
     249      int j=0;
     250      while(icurs!=NULL){
     251        if(strcasecmp(icurs->name,"value")!=0 &&
     252           strcasecmp(icurs->name,"Reference")!=0 &&
     253           strcasecmp(icurs->name,"minOccurs")!=0 &&
     254           strcasecmp(icurs->name,"maxOccurs")!=0 &&
     255           strcasecmp(icurs->name,"inRequest")!=0){
     256          char *itemp=strdup(dataInputsKVP);
     257          sprintf(dataInputsKVP,"%s@%s=%s",itemp,icurs->name,icurs->value);
     258          free(itemp);
     259        }
     260        icurs=icurs->next;
     261      }
     262      curs=curs->next;
     263      i++;
     264    }
     265    return dataInputsKVP;
     266  }
     267
    203268
    204269  static void freeMap(map** mo){
     
    516581      map* _ztmpm=getMap(_tmpm->content,subkey);
    517582      if(_ztmpm!=NULL){
    518         free(_ztmpm->value);
     583        if(_ztmpm->value!=NULL)
     584          free(_ztmpm->value);
    519585        _ztmpm->value=strdup(value);
    520586      }else{
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