Changeset 458 for trunk/zoo-project/zoo-kernel/service.h
- Timestamp:
- Mar 31, 2014, 10:50:26 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/zoo-project/zoo-kernel/service.h
r454 r458 254 254 } 255 255 256 static char* getMapsAsKVP(maps* m,int length,int type){257 char *dataInputsKVP=(char*) malloc(length*sizeof(char));258 maps* curs=m;259 int i=0;260 while(curs!=NULL){261 map *inRequest=getMap(curs->content,"inRequest");262 if(strncasecmp(inRequest->value,"true",4)==0){263 if(i==0)264 if(type==0)265 sprintf(dataInputsKVP,"%s=",curs->name);266 else267 sprintf(dataInputsKVP,"%s",curs->name);268 else{269 char *temp=zStrdup(dataInputsKVP);270 if(type==0)271 sprintf(dataInputsKVP,"%s;%s=",temp,curs->name);272 else273 sprintf(dataInputsKVP,"%s;%s",temp,curs->name);274 free(temp);275 }276 map* icurs=curs->content;277 if(type==0){278 char *temp=zStrdup(dataInputsKVP);279 if(getMap(m->content,"xlink:href")!=NULL)280 sprintf(dataInputsKVP,"%sReference",temp);281 else282 sprintf(dataInputsKVP,"%s%s",temp,icurs->value);283 free(temp);284 }285 while(icurs!=NULL){286 if(strcasecmp(icurs->name,"value")!=0 &&287 strcasecmp(icurs->name,"Reference")!=0 &&288 strcasecmp(icurs->name,"minOccurs")!=0 &&289 strcasecmp(icurs->name,"maxOccurs")!=0 &&290 strcasecmp(icurs->name,"inRequest")!=0){291 char *itemp=zStrdup(dataInputsKVP);292 sprintf(dataInputsKVP,"%s@%s=%s",itemp,icurs->name,icurs->value);293 free(itemp);294 }295 icurs=icurs->next;296 }297 }298 curs=curs->next;299 i++;300 }301 return dataInputsKVP;302 }303 304 256 305 257 static void freeMap(map** mo){ … … 909 861 } 910 862 863 #ifdef WIN32 864 extern char *url_encode(char *); 865 866 static char* getMapsAsKVP(maps* m,int length,int type){ 867 char *dataInputsKVP=(char*) malloc(length*sizeof(char)); 868 char *dataInputsKVPi=NULL; 869 maps* curs=m; 870 int i=0; 871 while(curs!=NULL){ 872 map *inRequest=getMap(curs->content,"inRequest"); 873 map *hasLength=getMap(curs->content,"length"); 874 if((inRequest!=NULL && strncasecmp(inRequest->value,"true",4)==0) || 875 inRequest==NULL){ 876 if(i==0) 877 if(type==0){ 878 sprintf(dataInputsKVP,"%s=",curs->name); 879 if(hasLength!=NULL){ 880 dataInputsKVPi=(char*)malloc((strlen(curs->name)+2)*sizeof(char)); 881 sprintf(dataInputsKVPi,"%s=",curs->name); 882 } 883 } 884 else 885 sprintf(dataInputsKVP,"%s",curs->name); 886 else{ 887 char *temp=zStrdup(dataInputsKVP); 888 if(type==0) 889 sprintf(dataInputsKVP,"%s;%s=",temp,curs->name); 890 else 891 sprintf(dataInputsKVP,"%s;%s",temp,curs->name); 892 } 893 map* icurs=curs->content; 894 if(type==0){ 895 char *temp=zStrdup(dataInputsKVP); 896 if(getMap(curs->content,"xlink:href")!=NULL) 897 sprintf(dataInputsKVP,"%sReference",temp); 898 else{ 899 if(hasLength!=NULL){ 900 for(int j=0;j<atoi(hasLength->value);j++){ 901 map* tmp0=getMapArray(curs->content,"value",j); 902 if(j==0) 903 free(temp); 904 temp=zStrdup(dataInputsKVP); 905 if(j==0) 906 sprintf(dataInputsKVP,"%s%s",temp,tmp0->value); 907 else 908 sprintf(dataInputsKVP,"%s;%s%s",temp,dataInputsKVPi,tmp0->value); 909 } 910 } 911 else 912 sprintf(dataInputsKVP,"%s%s",temp,icurs->value); 913 } 914 free(temp); 915 } 916 while(icurs!=NULL){ 917 if(strncasecmp(icurs->name,"value",5)!=0 && 918 strncasecmp(icurs->name,"mimeType_",9)!=0 && 919 strncasecmp(icurs->name,"dataType_",9)!=0 && 920 strncasecmp(icurs->name,"size",4)!=0 && 921 strncasecmp(icurs->name,"length",4)!=0 && 922 strncasecmp(icurs->name,"isArray",7)!=0 && 923 strcasecmp(icurs->name,"Reference")!=0 && 924 strcasecmp(icurs->name,"minOccurs")!=0 && 925 strcasecmp(icurs->name,"maxOccurs")!=0 && 926 strncasecmp(icurs->name,"fmimeType",9)!=0 && 927 strcasecmp(icurs->name,"inRequest")!=0){ 928 char *itemp=zStrdup(dataInputsKVP); 929 if(strcasecmp(icurs->name,"xlink:href")!=0) 930 sprintf(dataInputsKVP,"%s@%s=%s",itemp,icurs->name,icurs->value); 931 else 932 sprintf(dataInputsKVP,"%s@%s=%s",itemp,icurs->name,url_encode(icurs->value)); 933 free(itemp); 934 } 935 icurs=icurs->next; 936 } 937 } 938 curs=curs->next; 939 i++; 940 } 941 return dataInputsKVP; 942 } 943 #endif 944 911 945 #ifdef __cplusplus 912 946 }
Note: See TracChangeset
for help on using the changeset viewer.