- Timestamp:
- 05/01/12 17:28:47 (13 years ago)
- Location:
- issm/branches/trunk-jpl-damage
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/branches/trunk-jpl-damage
- Property svn:ignore
-
old new 7 7 config.status 8 8 configure 9 doxygen10 9 ISSM.paf 11 10 ISSM.ppf 12 11 ISSM.ppf_cache 13 12 libtool 14 list15 13 Makefile 16 14 Makefile.in 17 15 stamp-h1 18 16 svn-commit* 19 nightlylog
-
- Property svn:mergeinfo changed
/issm/trunk merged: 11526,11533,11681-11682,11710,11778-11779,11995 /issm/trunk-jpl merged: 11992-11994,11996-12003,12005-12113,12115-12161,12163-12166
- Property svn:ignore
-
issm/branches/trunk-jpl-damage/src/c/objects/Params/VectorParam.cpp
r12004 r12168 72 72 } 73 73 /*}}}*/ 74 #ifdef _SERIAL_75 /*FUNCTION VectorParam::Marshall{{{1*/76 void VectorParam::Marshall(char** pmarshalled_dataset){77 78 char* marshalled_dataset=NULL;79 int enum_value=0;80 int M;81 double* serial_value=NULL;82 83 /*recover marshalled_dataset: */84 marshalled_dataset=*pmarshalled_dataset;85 86 /*get enum value of VectorParam: */87 enum_value=VectorParamEnum;88 89 /*marshall enum: */90 memcpy(marshalled_dataset,&enum_value,sizeof(enum_value));marshalled_dataset+=sizeof(enum_value);91 92 /*marshall VectorParam data: */93 memcpy(marshalled_dataset,&enum_type,sizeof(enum_type));marshalled_dataset+=sizeof(enum_type);94 if(value){95 value->GetSize(&M);96 serial_value=value->ToMPISerial();97 memcpy(marshalled_dataset,&M,sizeof(M));marshalled_dataset+=sizeof(M);98 memcpy(marshalled_dataset,serial_value,M*sizeof(double));marshalled_dataset+=(M*sizeof(double));99 }100 else{101 M=0;102 memcpy(marshalled_dataset,&M,sizeof(M));marshalled_dataset+=sizeof(M);103 }104 /*Free ressources:*/105 xfree((void**)&serial_value);106 107 /*return:*/108 *pmarshalled_dataset=marshalled_dataset;109 }110 /*}}}*/111 /*FUNCTION VectorParam::MarshallSize{{{1*/112 int VectorParam::MarshallSize(){113 114 int M=0;115 if(value)value->GetSize(&M);116 117 return sizeof(M)+M*sizeof(double)118 +sizeof(enum_type)+119 +sizeof(int); //sizeof(int) for enum value120 }121 /*}}}*/122 /*FUNCTION VectorParam::Demarshall{{{1*/123 void VectorParam::Demarshall(char** pmarshalled_dataset){124 125 char* marshalled_dataset=NULL;126 int i;127 double* serial_vec=NULL;128 int M;129 130 /*recover marshalled_dataset: */131 marshalled_dataset=*pmarshalled_dataset;132 133 /*this time, no need to get enum type, the pointer directly points to the beginning of the134 *object data (thanks to DataSet::Demarshall):*/135 memcpy(&enum_type,marshalled_dataset,sizeof(enum_type));marshalled_dataset+=sizeof(enum_type);136 137 /*data: */138 139 memcpy(&M,marshalled_dataset,sizeof(M));marshalled_dataset+=sizeof(M);140 if(M){141 serial_vec=(double*)xmalloc(M*sizeof(double));142 memcpy(serial_vec,marshalled_dataset,M*sizeof(double));marshalled_dataset+=(M*sizeof(double));143 144 value=new Vector(serial_vec,M);145 }146 else{147 value=NULL;148 }149 150 /*Free ressources:*/151 xfree((void**)&serial_vec);152 153 /*return: */154 *pmarshalled_dataset=marshalled_dataset;155 }156 /*}}}*/157 #endif158 74 /*FUNCTION VectorParam::ObjectEnum{{{1*/ 159 75 int VectorParam::ObjectEnum(void){ … … 188 104 } 189 105 /*}}}*/ 190 /*FUNCTION VectorParam::SetMatlabField{{{1*/191 #if defined(_HAVE_MATLAB_) && defined(_SERIAL_)192 void VectorParam::SetMatlabField(mxArray* dataref){193 194 mxArray* pfield=NULL;195 char* name=NULL;196 double* doublevec=NULL;197 int M;198 199 doublevec=value->ToMPISerial();200 value->GetSize(&M);201 this->GetParameterName(&name);202 203 pfield=mxCreateDoubleMatrix(0,0,mxREAL);204 mxSetM(pfield,M);205 mxSetN(pfield,1);206 mxSetPr(pfield,doublevec);207 208 mxSetField( dataref, 0, name, pfield);209 }210 #endif211 /*}}}*/212 106 /*FUNCTION VectorParam::SetValue{{{1*/ 213 107 void VectorParam::SetValue(Vector* vector){
Note:
See TracChangeset
for help on using the changeset viewer.