Changeset 25522


Ignore:
Timestamp:
09/03/20 10:26:35 (5 years ago)
Author:
Mathieu Morlighem
Message:

CHG: added marshall of char*, no need to have size outside of marshall

Location:
issm/trunk-jpl/src/c/shared
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/shared/Enum/Enum.vim

    r25514 r25522  
    10831083syn keyword cConstant GenericOptionEnum
    10841084syn keyword cConstant GenericParamEnum
     1085syn keyword cConstant GenericExternalResultEnum
    10851086syn keyword cConstant GiaAnalysisEnum
    10861087syn keyword cConstant GiaSolutionEnum
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r25514 r25522  
    10821082        GenericOptionEnum,
    10831083        GenericParamEnum,
     1084        GenericExternalResultEnum,
    10841085        GiaAnalysisEnum,
    10851086        GiaSolutionEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r25514 r25522  
    10851085                case GenericOptionEnum : return "GenericOption";
    10861086                case GenericParamEnum : return "GenericParam";
     1087                case GenericExternalResultEnum : return "GenericExternalResult";
    10871088                case GiaAnalysisEnum : return "GiaAnalysis";
    10881089                case GiaSolutionEnum : return "GiaSolution";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r25514 r25522  
    11091109              else if (strcmp(name,"GenericOption")==0) return GenericOptionEnum;
    11101110              else if (strcmp(name,"GenericParam")==0) return GenericParamEnum;
     1111              else if (strcmp(name,"GenericExternalResult")==0) return GenericExternalResultEnum;
    11111112              else if (strcmp(name,"GiaAnalysis")==0) return GiaAnalysisEnum;
    11121113              else if (strcmp(name,"GiaSolution")==0) return GiaSolutionEnum;
     
    11201121              else if (strcmp(name,"GroundinglineMassFlux")==0) return GroundinglineMassFluxEnum;
    11211122              else if (strcmp(name,"Gset")==0) return GsetEnum;
    1122               else if (strcmp(name,"Gsl")==0) return GslEnum;
    11231123         else stage=10;
    11241124   }
    11251125   if(stage==10){
    1126               if (strcmp(name,"HOApproximation")==0) return HOApproximationEnum;
     1126              if (strcmp(name,"Gsl")==0) return GslEnum;
     1127              else if (strcmp(name,"HOApproximation")==0) return HOApproximationEnum;
    11271128              else if (strcmp(name,"HOFSApproximation")==0) return HOFSApproximationEnum;
    11281129              else if (strcmp(name,"Hook")==0) return HookEnum;
     
    12431244              else if (strcmp(name,"P1P1")==0) return P1P1Enum;
    12441245              else if (strcmp(name,"P1P1GLS")==0) return P1P1GLSEnum;
    1245               else if (strcmp(name,"P1bubble")==0) return P1bubbleEnum;
    12461246         else stage=11;
    12471247   }
    12481248   if(stage==11){
    1249               if (strcmp(name,"P1bubblecondensed")==0) return P1bubblecondensedEnum;
     1249              if (strcmp(name,"P1bubble")==0) return P1bubbleEnum;
     1250              else if (strcmp(name,"P1bubblecondensed")==0) return P1bubblecondensedEnum;
    12501251              else if (strcmp(name,"P1xP2")==0) return P1xP2Enum;
    12511252              else if (strcmp(name,"P1xP3")==0) return P1xP3Enum;
     
    13661367              else if (strcmp(name,"EtaAbsGradient")==0) return EtaAbsGradientEnum;
    13671368              else if (strcmp(name,"MeshZ")==0) return MeshZEnum;
    1368               else if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
    13691369         else stage=12;
    13701370   }
    13711371   if(stage==12){
    1372               if (strcmp(name,"OutputdefinitionList")==0) return OutputdefinitionListEnum;
     1372              if (strcmp(name,"NearestInterp")==0) return NearestInterpEnum;
     1373              else if (strcmp(name,"OutputdefinitionList")==0) return OutputdefinitionListEnum;
    13731374              else if (strcmp(name,"SealevelObs")==0) return SealevelObsEnum;
    13741375              else if (strcmp(name,"SealevelWeights")==0) return SealevelWeightsEnum;
  • issm/trunk-jpl/src/c/shared/io/Marshalling/Marshalling.h

    r25513 r25522  
    4343        public:
    4444                WriteCheckpointFunctor(char** pmarshalled_data_in) : MarshallHandle(MARSHALLING_WRITE),pmarshalled_data(pmarshalled_data_in){}
     45                void Echo(void){
     46                        printf("WriteCheckpointFunctor Echo:\n");
     47                        printf("   pmarshalled_data: %p\n",pmarshalled_data);
     48                }
    4549                template<typename T> void call(T & value){
    4650                        memcpy(*pmarshalled_data,&value,sizeof(T));
    4751                        *pmarshalled_data+=sizeof(T);
    4852                }
    49                 void Echo(void){
    50                         printf("WriteCheckpointFunctor Echo:\n");
    51                         printf("   pmarshalled_data: %p\n",pmarshalled_data);
    52                 }
     53                void call(char* & value){
     54                        int size = 0;
     55                        if(value) size = strlen(value)+1;
     56                        this->call(size);
     57                        this->call(value,size);
     58                };
    5359                template<typename T> void call(T* & value,int size){
    5460                        bool pointer_null = true;
    5561                        if(value) pointer_null = false;
    56                         call(pointer_null);
     62                        this->call<bool>(pointer_null);
    5763                        if(value){
    5864                                memcpy(*pmarshalled_data,value,size*sizeof(T));
     
    7682                        *pmarshalled_data+=sizeof(T);
    7783                }
     84                void call(char* & value){
     85                        int size;
     86                        this->call(size);
     87                        this->call(value,size);
     88                };
    7889                template<typename T> void call(T* & value,int size){
    7990                        bool pointer_null;
     
    104115                        marshalled_data_size+=sizeof(T);
    105116                }
     117                void call(char* & value){
     118                        int size = 0;
     119                        if(value) size = strlen(value)+1;
     120                        this->call(size);
     121                        if(size) marshalled_data_size+=size*sizeof(char);
     122                };
    106123                template<typename T> void call(T* & value,int size){
    107124                        bool pointer_null = true;
Note: See TracChangeset for help on using the changeset viewer.