Changeset 12014 for issm/trunk-jpl/src/c/objects/Params/IntMatParam.cpp
- Timestamp:
- 04/16/12 18:48:33 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/objects/Params/IntMatParam.cpp
r12011 r12014 78 78 } 79 79 /*}}}*/ 80 #ifdef _SERIAL_81 /*FUNCTION IntMatParam::Marshall{{{1*/82 void IntMatParam::Marshall(char** pmarshalled_dataset){83 84 char* marshalled_dataset=NULL;85 int enum_value=0;86 87 /*recover marshalled_dataset: */88 marshalled_dataset=*pmarshalled_dataset;89 90 /*get enum value of IntMatParam: */91 enum_value=IntMatParamEnum;92 93 /*marshall enum: */94 memcpy(marshalled_dataset,&enum_value,sizeof(enum_value));marshalled_dataset+=sizeof(enum_value);95 96 /*marshall IntMatParam data: */97 memcpy(marshalled_dataset,&enum_type,sizeof(enum_type));marshalled_dataset+=sizeof(enum_type);98 memcpy(marshalled_dataset,&M,sizeof(M));marshalled_dataset+=sizeof(M);99 memcpy(marshalled_dataset,&N,sizeof(N));marshalled_dataset+=sizeof(N);100 memcpy(marshalled_dataset,value,M*N*sizeof(int));marshalled_dataset+=M*N*sizeof(int);101 102 *pmarshalled_dataset=marshalled_dataset;103 }104 /*}}}*/105 /*FUNCTION IntMatParam::MarshallSize{{{1*/106 int IntMatParam::MarshallSize(){107 108 return sizeof(M)109 +sizeof(N)110 +M*N*sizeof(int)111 +sizeof(enum_type)+112 +sizeof(int); //sizeof(int) for enum value113 }114 /*}}}*/115 /*FUNCTION IntMatParam::Demarshall{{{1*/116 void IntMatParam::Demarshall(char** pmarshalled_dataset){117 118 char* marshalled_dataset=NULL;119 int i;120 121 /*recover marshalled_dataset: */122 marshalled_dataset=*pmarshalled_dataset;123 124 /*this time, no need to get enum type, the pointer directly points to the beginning of the125 *object data (thanks to DataSet::Demarshall):*/126 memcpy(&enum_type,marshalled_dataset,sizeof(enum_type));marshalled_dataset+=sizeof(enum_type);127 128 /*data: */129 memcpy(&M,marshalled_dataset,sizeof(M));marshalled_dataset+=sizeof(M);130 memcpy(&N,marshalled_dataset,sizeof(N));marshalled_dataset+=sizeof(N);131 value=(int*)xmalloc(M*N*sizeof(int));132 memcpy(value,marshalled_dataset,M*N*sizeof(int));marshalled_dataset+=M*N*sizeof(int);133 134 /*return: */135 *pmarshalled_dataset=marshalled_dataset;136 return;137 }138 /*}}}*/139 #endif140 80 /*FUNCTION IntMatParam::ObjectEnum{{{1*/ 141 81 int IntMatParam::ObjectEnum(void){
Note:
See TracChangeset
for help on using the changeset viewer.