Changeset 26868


Ignore:
Timestamp:
02/09/22 08:26:09 (3 years ago)
Author:
Mathieu Morlighem
Message:

CHG: added support for marshalling Cfsurfacelogvel

Location:
issm/trunk-jpl/src/c
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk-jpl/src/c/classes/Cfsurfacelogvel.cpp

    r26468 r26868  
    7575/*}}}*/
    7676void Cfsurfacelogvel::Marshall(MarshallHandle* marshallhandle){/*{{{*/
    77         _error_("not implemented yet!");
     77        int object_enum=CfsurfacelogvelEnum;
     78        marshallhandle->call(object_enum);
     79
     80        marshallhandle->call(this->definitionenum);
     81        marshallhandle->call(this->name);
     82        marshallhandle->call(this->datatime);
     83        marshallhandle->call(this->timepassedflag);
     84        marshallhandle->call(this->misfit);
    7885}
    7986/*}}}*/
  • TabularUnified issm/trunk-jpl/src/c/classes/Inputs/TransientInput.cpp

    r26468 r26868  
    125125void TransientInput::Marshall(MarshallHandle* marshallhandle){ /*{{{*/
    126126
     127        bool isnull;
     128
    127129        int object_enum = TransientInputEnum;
    128130   marshallhandle->call(object_enum);
     
    149151        if(marshallhandle->OperationNumber()!=MARSHALLING_LOAD){
    150152                for(int i=0;i<this->numtimesteps;i++){
    151                         _assert_(this->inputs[i]);
    152                         object_enum = this->inputs[i]->ObjectEnum();
    153                         marshallhandle->call(object_enum);
    154                         this->inputs[i]->Marshall(marshallhandle);
     153
     154                        //_assert_(this->inputs[i]);
     155                        isnull = false;
     156                        if(!this->inputs[i]) isnull = true;
     157                        marshallhandle->call(isnull);
     158
     159                        if(!isnull){
     160                                object_enum = this->inputs[i]->ObjectEnum();
     161                                marshallhandle->call(object_enum);
     162                                this->inputs[i]->Marshall(marshallhandle);
     163                        }
    155164                }
    156165        }
    157166        else{
    158167                for(int i=0;i<this->numtimesteps;i++){
    159                         marshallhandle->call(object_enum);
    160 
    161                         if(object_enum==TriaInputEnum){
    162                                 TriaInput* triainput2=new TriaInput();
    163                                 triainput2->Marshall(marshallhandle);
    164                                 this->inputs[i]=triainput2;
    165                         }
    166                         else if(object_enum==PentaInputEnum){
    167                                 PentaInput* pentainput2=new PentaInput();
    168                                 pentainput2->Marshall(marshallhandle);
    169                                 this->inputs[i]=pentainput2;
    170                         }
    171                         else{
    172                                 _error_("input "<<EnumToStringx(object_enum)<<" not supported");
     168                        marshallhandle->call(isnull);
     169                        if(!isnull){
     170                                marshallhandle->call(object_enum);
     171
     172                                if(object_enum==TriaInputEnum){
     173                                        TriaInput* triainput2=new TriaInput();
     174                                        triainput2->Marshall(marshallhandle);
     175                                        this->inputs[i]=triainput2;
     176                                }
     177                                else if(object_enum==PentaInputEnum){
     178                                        PentaInput* pentainput2=new PentaInput();
     179                                        pentainput2->Marshall(marshallhandle);
     180                                        this->inputs[i]=pentainput2;
     181                                }
     182                                else{
     183                                        _error_("input "<<EnumToStringx(object_enum)<<" not supported");
     184                                }
    173185                        }
    174186                }
  • TabularUnified issm/trunk-jpl/src/c/datastructures/DataSet.cpp

    r26525 r26868  
    261261                                this->AddObject(cfsurf);
    262262                        }
     263                        else if(obj_enum==CfsurfacelogvelEnum){
     264                                Cfsurfacelogvel* cfsurf=new Cfsurfacelogvel();
     265                                cfsurf->Marshall(marshallhandle);
     266                                this->AddObject(cfsurf);
     267                        }
    263268                        else if(obj_enum==MassfluxatgateEnum){
    264269                                Massfluxatgate<IssmDouble>* massfluxgate=new Massfluxatgate<IssmDouble>();
Note: See TracChangeset for help on using the changeset viewer.