Ignore:
Timestamp:
Feb 5, 2018, 1:19:13 PM (6 years ago)
Author:
djay
Message:

Change the default ZOO-Kernel behavior, if an input has been passed by reference, the ZOO-Service will receive a cache_file map rather than the value field which was usually returned, same for array value apply. To use the previous behavior, one can add "memory=load" to the main section of the main.cfg file. Update ZOO-Services for using this new field if available.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/prototype-v0/zoo-project/zoo-kernel/service_internal_python.c

    r854 r863  
    425425  map* isArray=getMap(tmp,"isArray");
    426426  map* size=getMap(tmp,"size");
     427  map* useFile=getMap(tmp,"use_file");
     428  map* cacheFile=getMap(tmp,"cache_file");
    427429  map* tmap=getMapType(tmp);
    428430  while(tmp!=NULL){
     
    435437        PyObject* mvalue=PyList_New(cnt);
    436438        PyObject* svalue=PyList_New(cnt);
     439        PyObject* cvalue=PyList_New(cnt);
    437440
    438441        for(int i=0;i<cnt;i++){
    439442         
    440           map* vMap=getMapArray(tmp,"value",i);     
    441           map* sMap=getMapArray(tmp,"size",i);
     443          map* vMap=getMapArray(t,"value",i);
     444          map* uMap=getMapArray(t,"use_file",i);
     445          map* sMap=getMapArray(t,"size",i);
     446          map* cMap=getMapArray(t,"cache_file",i);
    442447
    443448          if(vMap!=NULL){
     
    445450            PyObject* lvalue;
    446451            PyObject* lsvalue;
    447             if(sMap==NULL){
     452            PyObject* lcvalue;
     453            if(sMap==NULL || uMap!=NULL){
    448454              lvalue=PyString_FromString(vMap->value);
    449               lsvalue=Py_None;
    450455            }
    451456            else{   
    452457              lvalue=PyString_FromStringAndSize(vMap->value,atoi(sMap->value));
     458            }
     459            if(sMap!=NULL){
    453460              lsvalue=PyString_FromString(sMap->value);
    454461              hasSize=1;
    455462            }
     463            else
     464              lsvalue=Py_None;
     465            if(uMap!=NULL){
     466              lcvalue=PyString_FromString(cMap->value);;
     467            }else
     468              lcvalue=Py_None;
    456469
    457470            if(PyList_SetItem(value,i,lvalue)<0){
     
    463476              return NULL;
    464477            }
     478            if(PyList_SetItem(cvalue,i,lcvalue)<0){
     479              fprintf(stderr,"Unable to set key value pair...");
     480              return NULL;
     481            }
    465482          }
    466483         
     484          PyObject* lmvalue;
    467485          map* mMap=getMapArray(tmp,tmap->name,i);
    468           PyObject* lmvalue;
    469486          if(mMap!=NULL){
    470487            lmvalue=PyString_FromString(mMap->value);
     
    487504          return NULL;
    488505        }
     506        if(PyDict_SetItem(res,PyString_FromString("cache_file"),cvalue)<0){
     507          fprintf(stderr,"Unable to set key value pair...");
     508          return NULL;
     509        }
    489510        if(hasSize>0)
    490511          if(PyDict_SetItem(res,PyString_FromString("size"),svalue)<0){
     
    493514          }
    494515      }
    495       else if(size!=NULL){
     516      else if(size!=NULL && useFile==NULL){
    496517        PyObject* value=PyString_FromStringAndSize(tmp->value,atoi(size->value));
    497518        if(PyDict_SetItem(res,name,value)<0){
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