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

Merge trunk r111:r216 into branch-1.2

Location:
branches/branch-1.2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/branch-1.2

  • branches/branch-1.2/zoo-kernel/service_internal.c

    r94 r217  
    2525#include "service_internal.h"
    2626
    27 void *addLangAttr(xmlNodePtr n,maps *m){
     27#ifdef WIN32
     28char *
     29strtok_r (char *s1, const char *s2, char **lasts)
     30{
     31  char *ret;
     32  if (s1 == NULL)
     33    s1 = *lasts;
     34  while (*s1 && strchr(s2, *s1))
     35    ++s1;
     36  if (*s1 == '\0')
     37    return NULL;
     38  ret = s1;
     39  while (*s1 && !strchr(s2, *s1))
     40    ++s1;
     41  if (*s1)
     42    *s1++ = '\0';
     43  *lasts = s1;
     44  return ret;
     45}
     46#endif
     47
     48void addLangAttr(xmlNodePtr n,maps *m){
    2849  map *tmpLmap=getMapFromMaps(m,"main","language");
    2950  if(tmpLmap!=NULL)
     
    4465}
    4566
    46 void* unhandleStatus(maps *conf){
     67#ifdef WIN32
     68
     69#include <windows.h>
     70#include <stdio.h>
     71#include <conio.h>
     72#include <tchar.h>
     73
     74#define SHMEMSIZE 4096
     75
     76static LPVOID lpvMemG = NULL;      // pointer to shared memory
     77static HANDLE hMapObjectG = NULL;  // handle to file mapping
     78
     79void updateStatus(maps *conf){
     80        fprintf(stderr,"OK Final 1 \n");
     81        fflush(stderr);
     82        LPWSTR lpszTmp;
     83        BOOL fInit;
     84        char *s=NULL;
     85        map *tmpMap=getMapFromMaps(conf,"lenv","sid");
     86        fprintf(stderr,"OK Final 11 \n");
     87        fflush(stderr);
     88        if(hMapObjectG==NULL)
     89        hMapObjectG = CreateFileMapping(
     90                INVALID_HANDLE_VALUE,   // use paging file
     91                NULL,                   // default security attributes
     92                PAGE_READWRITE,         // read/write access
     93                0,                      // size: high 32-bits
     94                SHMEMSIZE,              // size: low 32-bits
     95                TEXT(tmpMap->value));   // name of map object
     96        if (hMapObjectG == NULL){
     97                fprintf(stderr,"Unable to create share memory segment %s !! \n",tmpMap->value);
     98                return ;
     99        }
     100        fprintf(stderr,"OK Final 2 \n");
     101        fflush(stderr);
     102        fInit = (GetLastError() != ERROR_ALREADY_EXISTS);
     103        if(lpvMemG==NULL)
     104        lpvMemG = MapViewOfFile(
     105                hMapObjectG,     // object to map view of
     106                FILE_MAP_WRITE, // read/write access
     107                0,              // high offset:  map from
     108                0,              // low offset:   beginning
     109                0);             // default: map entire file
     110        if (lpvMemG == NULL){
     111                fprintf(stderr,"Unable to create or access the shared memory segment %s !! \n",tmpMap->value);
     112                return ;
     113        }
     114        fprintf(stderr,"OK Final 3 \n");
     115        fflush(stderr);
     116        if (fInit)
     117                memset(lpvMemG, '\0', SHMEMSIZE);
     118        fprintf(stderr,"OK Final 4 \n");
     119        fflush(stderr);
     120        tmpMap=getMapFromMaps(conf,"lenv","status");
     121        lpszTmp = (LPWSTR) lpvMemG;
     122        for(s=tmpMap->value;*s!=NULL;s++)
     123                *lpszTmp++ = *s;
     124        *lpszTmp = '\0';
     125}
     126
     127char* getStatus(int pid){
     128  LPWSTR lpszBuf=NULL;
     129  LPWSTR lpszTmp=NULL;
     130  LPVOID lpvMem = NULL;
     131  HANDLE hMapObject = NULL;
     132  BOOL fIgnore,fInit;
     133  char tmp[100];
     134  sprintf(tmp,"%i",pid);
     135  if(hMapObject==NULL)
     136    hMapObject = CreateFileMapping(
     137                                   INVALID_HANDLE_VALUE,   // use paging file
     138                                   NULL,                   // default security attributes
     139                                   PAGE_READWRITE,         // read/write access
     140                                   0,                      // size: high 32-bits
     141                                   4096,                   // size: low 32-bits
     142                                   TEXT(tmp));   // name of map object
     143  if (hMapObject == NULL)
     144    return FALSE;
     145  if((GetLastError() != ERROR_ALREADY_EXISTS)){
     146    fIgnore = UnmapViewOfFile(lpvMem);
     147    fIgnore = CloseHandle(hMapObject);
     148    return "-1";
     149  }
     150  fInit=TRUE;
     151  if(lpvMem==NULL)
     152    lpvMem = MapViewOfFile(
     153                           hMapObject,     // object to map view of
     154                           FILE_MAP_READ,  // read/write access
     155                           0,              // high offset:  map from
     156                           0,              // low offset:   beginning
     157                           0);             // default: map entire file
     158  if (lpvMem == NULL)
     159    return "-1";
     160  lpszTmp = (LPWSTR) lpvMem;
     161  while (*lpszTmp!=NULL)
     162    *lpszBuf++ = *lpszTmp++;
     163  *lpszBuf = '\0';
     164  fIgnore = UnmapViewOfFile(lpvMem);
     165  fIgnore = CloseHandle(hMapObject);
     166  return (char*)lpszBuf;
     167}
     168
     169void unhandleStatus(maps *conf){
     170  BOOL fIgnore;
     171  fIgnore = UnmapViewOfFile(lpvMemG);
     172  fIgnore = CloseHandle(hMapObjectG);
     173}
     174#else
     175void unhandleStatus(maps *conf){
    47176  int shmid,i;
    48177  key_t key;
     
    69198  }
    70199}
     200
     201void updateStatus(maps *conf){
     202  int shmid,i;
     203  key_t key;
     204  char *shm,*s,*s1;
     205  map *tmpMap=NULL;
     206  tmpMap=getMapFromMaps(conf,"lenv","sid");
     207  if(tmpMap!=NULL){
     208    key=atoi(tmpMap->value);
     209    if ((shmid = shmget(key, SHMSZ, IPC_CREAT | 0666)) < 0) {
     210#ifdef DEBUG
     211      fprintf(stderr,"shmget failed to update value\n");
     212#endif
     213    }else{
     214      if ((shm = (char*) shmat(shmid, NULL, 0)) == (char *) -1) {
     215#ifdef DEBUG
     216        fprintf(stderr,"shmat failed to update value\n");
     217#endif
     218      }
     219      else{
     220        tmpMap=getMapFromMaps(conf,"lenv","status");
     221        s1=shm;
     222        for(s=tmpMap->value;s!=NULL;s++)
     223          *s1++=*s;
     224        shmdt((void *)shm);
     225      }
     226    }
     227  }
     228}
     229
     230char* getStatus(int pid){
     231  int shmid,i;
     232  key_t key;
     233  void *shm;
     234  char *s;
     235  key=pid;
     236  if ((shmid = shmget(key, SHMSZ, 0666)) < 0) {
     237#ifdef DEBUG
     238    fprintf(stderr,"shmget failed in getStatus\n");
     239#endif
     240  }else{
     241    if ((shm = shmat(shmid, NULL, 0)) == (char *) -1) {
     242#ifdef DEBUG
     243      fprintf(stderr,"shmat failed in getStatus\n");
     244#endif
     245    }else{
     246      return (char*)shm;
     247    }
     248  }
     249  return "-1";
     250}
     251
     252#endif
    71253
    72254#ifdef USE_JS
     
    109291#endif
    110292
    111 void* updateStatus(maps *conf){
    112   int shmid,i;
    113   key_t key;
    114   char *shm,*s,*s1;
    115   map *tmpMap=NULL;
    116   tmpMap=getMapFromMaps(conf,"lenv","sid");
    117   if(tmpMap!=NULL){
    118     key=atoi(tmpMap->value);
    119     if ((shmid = shmget(key, SHMSZ, IPC_CREAT | 0666)) < 0) {
    120 #ifdef DEBUG
    121       fprintf(stderr,"shmget failed to update value\n");
    122 #endif
    123     }else{
    124       if ((shm = (char*) shmat(shmid, NULL, 0)) == (char *) -1) {
    125 #ifdef DEBUG
    126         fprintf(stderr,"shmat failed to update value\n");
    127 #endif
    128       }
    129       else{
    130         tmpMap=getMapFromMaps(conf,"lenv","status");
    131         s1=shm;
    132         for(s=tmpMap->value;*s!=NULL;s++)
    133           *s1++=*s;
    134         shmdt((void *)shm);
    135       }
    136     }
    137   }
    138 }
    139 
    140 char* getStatus(int pid){
    141   int shmid,i;
    142   key_t key;
    143   void *shm;
    144   char *s;
    145   key=pid;
    146   if ((shmid = shmget(key, SHMSZ, 0666)) < 0) {
    147 #ifdef DEBUG
    148     fprintf(stderr,"shmget failed in getStatus\n");
    149 #endif
    150   }else{
    151     if ((shm = shmat(shmid, NULL, 0)) == (char *) -1) {
    152 #ifdef DEBUG
    153       fprintf(stderr,"shmat failed in getStatus\n");
    154 #endif
    155     }else{
    156       return (char*)shm;
    157     }
    158   }
    159   return "-1";
    160 }
    161293
    162294
     
    216348
    217349
    218 int zooXmlSearchForNs(char* name){
     350int zooXmlSearchForNs(const char* name){
    219351  int i;
    220352  int res=-1;
     
    227359}
    228360
    229 int zooXmlAddNs(xmlNodePtr nr,char* url,char* name){
     361int zooXmlAddNs(xmlNodePtr nr,const char* url,const char* name){
    230362#ifdef DEBUG
    231363  fprintf(stderr,"zooXmlAddNs %d \n",nbNs);
     
    266398}
    267399
    268 xmlNodePtr printGetCapabilitiesHeader(xmlDocPtr doc,char* service,maps* m){
     400xmlNodePtr printGetCapabilitiesHeader(xmlDocPtr doc,const char* service,maps* m){
    269401
    270402  xmlNsPtr ns,ns_ows,ns_xlink,ns_xsi;
     
    618750}
    619751
    620 xmlNodePtr printDescribeProcessHeader(xmlDocPtr doc,char* service,maps* m){
     752xmlNodePtr printDescribeProcessHeader(xmlDocPtr doc,const char* service,maps* m){
    621753
    622754  xmlNsPtr ns,ns_ows,ns_xlink,ns_xsi;
     
    711843}
    712844
    713 void printFullDescription(elements *elem,char* type,xmlNsPtr ns_ows,xmlNodePtr nc1){
     845void printFullDescription(elements *elem,const char* type,xmlNsPtr ns_ows,xmlNodePtr nc1){
    714846  char *orderedFields[7];
    715847  orderedFields[0]="mimeType";
     
    9571089}
    9581090
    959 void printProcessResponse(maps* m,map* request, int pid,service* serv,char* service,int status,maps* inputs,maps* outputs){
     1091void printProcessResponse(maps* m,map* request, int pid,service* serv,const char* service,int status,maps* inputs,maps* outputs){
    9601092  xmlNsPtr ns,ns_ows,ns_xlink,ns_xsi;
    9611093  xmlNodePtr nr,n,nc,nc1,nc2,nc3,pseudor;
     
    11921324    int buffersize;
    11931325    xmlDocDumpFormatMemoryEnc(doc, &xmlbuff, &buffersize, "UTF-8", 1);
    1194     fwrite(xmlbuff,1,strlen(xmlbuff)*sizeof(char),output);
     1326    fwrite(xmlbuff,1,xmlStrlen(xmlbuff)*sizeof(char),output);
    11951327    xmlFree(xmlbuff);
    11961328    fclose(output);
     
    12041336
    12051337void printDocument(maps* m, xmlDocPtr doc,int pid){
    1206   rewind(stdout);
    12071338  char *encoding=getEncoding(m);
    12081339  if(pid==getpid()){
     
    12171348   */
    12181349  xmlDocDumpFormatMemoryEnc(doc, &xmlbuff, &buffersize, encoding, 1);
    1219   printf((char *) xmlbuff);
    1220   //fflush(stdout);
     1350  printf("%s",xmlbuff);
     1351  fflush(stdout);
    12211352  /*
    12221353   * Free associated memory.
     
    12281359}
    12291360
    1230 void printOutputDefinitions1(xmlDocPtr doc,xmlNodePtr nc,xmlNsPtr ns_wps,xmlNsPtr ns_ows,elements* e,maps* m,char* type){
     1361void printOutputDefinitions1(xmlDocPtr doc,xmlNodePtr nc,xmlNsPtr ns_wps,xmlNsPtr ns_ows,elements* e,maps* m,const char* type){
    12311362  xmlNodePtr nc1;
    12321363  nc1=xmlNewNode(ns_wps, BAD_CAST type);
     
    12601391}
    12611392
    1262 void printOutputDefinitions(xmlDocPtr doc,xmlNodePtr nc,xmlNsPtr ns_wps,xmlNsPtr ns_ows,elements* e,map* m,char* type){
     1393void printOutputDefinitions(xmlDocPtr doc,xmlNodePtr nc,xmlNsPtr ns_wps,xmlNsPtr ns_ows,elements* e,map* m,const char* type){
    12631394  xmlNodePtr nc1,nc2,nc3;
    12641395  nc1=xmlNewNode(ns_wps, BAD_CAST type);
     
    12881419}
    12891420
    1290 void printIOType(xmlDocPtr doc,xmlNodePtr nc,xmlNsPtr ns_wps,xmlNsPtr ns_ows,xmlNsPtr ns_xlink,elements* e,maps* m,char* type){
     1421void printIOType(xmlDocPtr doc,xmlNodePtr nc,xmlNsPtr ns_wps,xmlNsPtr ns_ows,xmlNsPtr ns_xlink,elements* e,maps* m,const char* type){
    12911422  xmlNodePtr nc1,nc2,nc3;
    12921423  nc1=xmlNewNode(ns_wps, BAD_CAST type);
     
    14431574}
    14441575
    1445 void printDescription(xmlNodePtr root,xmlNsPtr ns_ows,char* identifier,map* amap){
     1576void printDescription(xmlNodePtr root,xmlNsPtr ns_ows,const char* identifier,map* amap){
    14461577  xmlNodePtr nc2 = xmlNewNode(ns_ows, BAD_CAST "Identifier");
    14471578  xmlAddChild(nc2,xmlNewText(BAD_CAST identifier));
     
    15271658  maps* tmpMap=getMaps(m,"main");
    15281659
    1529   int nsid=zooXmlAddNs(NULL,BAD_CAST "http://www.opengis.net/ows/1.1",BAD_CAST "ows");
     1660  int nsid=zooXmlAddNs(NULL,"http://www.opengis.net/ows/1.1","ows");
    15301661  ns=usedNs[nsid];
    15311662  n = xmlNewNode(ns, BAD_CAST "ExceptionReport");
     
    17081839          freeMap(&errormap);
    17091840          free(errormap);
    1710           return 1;
     1841          return;
    17111842        }
    17121843        char mime[1024];
     
    17571888}
    17581889
    1759 char *base64(const unsigned char *input, int length)
     1890char *base64(const char *input, int length)
    17601891{
    17611892  BIO *bmem, *b64;
     
    17791910}
    17801911
    1781 char *base64d(unsigned char *input, int length,int* red)
     1912char *base64d(const char *input, int length,int* red)
    17821913{
    17831914  BIO *b64, *bmem;
     
    17881919    b64 = BIO_new(BIO_f_base64());
    17891920    if(b64){
    1790       bmem = BIO_new_mem_buf(input,length);
     1921      bmem = BIO_new_mem_buf((unsigned char*)input,length);
    17911922      bmem = BIO_push(b64, bmem);
    17921923      *red=BIO_read(bmem, buffer, length);
     
    19722103 * Note : support only 2D bounding box.
    19732104 */
    1974 map* parseBoundingBox(char* value){
     2105map* parseBoundingBox(const char* value){
    19752106  map *res=NULL;
    19762107  if(value!=NULL){
    19772108    char *cv,*cvp;
    1978     cv=strtok_r(value,",",&cvp);
     2109    cv=strtok_r((char*) value,",",&cvp);
    19792110    int cnt=0;
    19802111    int icnt=0;
     
    20782209  ns_ows=usedNs[owsId];
    20792210  n = xmlNewNode(ns_ows, BAD_CAST "BoundingBox");
    2080   xmlNewNs(n,BAD_CAST "http://www.opengis.net/ows/1.1","ows");
     2211  xmlNewNs(n,BAD_CAST "http://www.opengis.net/ows/1.1",BAD_CAST "ows");
    20812212  int xsiId=zooXmlAddNs(n,"http://www.w3.org/2001/XMLSchema-instance","xsi");
    20822213  ns_xsi=usedNs[xsiId];
     
    20892220  xmlDocDumpFormatMemoryEnc(doc, &xmlbuff, &buffersize, encoding, 1);
    20902221  if(file==NULL)
    2091     printf((char *) xmlbuff);
     2222    printf("%s",xmlbuff);
    20922223  else{
    20932224    fprintf(file,"%s",xmlbuff);
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