Changeset 25836 for issm/trunk/src/c/classes/Params/StringArrayParam.cpp
- Timestamp:
- 12/08/20 08:45:53 (4 years ago)
- Location:
- issm/trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk
- Property svn:mergeinfo changed
-
issm/trunk/src
- Property svn:mergeinfo changed
-
issm/trunk/src/c
- Property svn:ignore
-
old new 23 23 issm_ocean 24 24 issm_dakota 25 issm_post
-
- Property svn:ignore
-
issm/trunk/src/c/classes/Params/StringArrayParam.cpp
r23189 r25836 73 73 int StringArrayParam::Id(void){ return -1; }/*{{{*/ 74 74 /*}}}*/ 75 void StringArrayParam::Marshall( char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*{{{*/75 void StringArrayParam::Marshall(MarshallHandle* marshallhandle){ /*{{{*/ 76 76 77 int* sizes=NULL; 77 int object_enum = StringArrayParamEnum; 78 marshallhandle->call(object_enum); 78 79 79 if(marshall_direction==MARSHALLING_FORWARD || marshall_direction==MARSHALLING_SIZE){ 80 if(numstrings)sizes=xNew<int>(numstrings); 81 for(int i=0;i<numstrings;i++)sizes[i]=strlen(value[i])+1; 82 } 80 marshallhandle->call(this->enum_type); 81 marshallhandle->call(this->numstrings); 83 82 84 MARSHALLING_ENUM(StringArrayParamEnum); 85 86 MARSHALLING(enum_type); 87 MARSHALLING(numstrings); 88 89 if(numstrings){ 90 MARSHALLING_DYNAMIC(sizes,int,numstrings); 91 if(marshall_direction==MARSHALLING_BACKWARD) value=xNew<char*>(numstrings); 92 for(int i=0;i<numstrings;i++)MARSHALLING_DYNAMIC(value[i],char,sizes[i]); 83 if(this->numstrings){ 84 if(marshallhandle->OperationNumber()==MARSHALLING_LOAD){ 85 this->value=xNew<char*>(this->numstrings); 86 } 87 for(int i=0;i<numstrings;i++){ 88 marshallhandle->call(this->value[i]); 89 } 93 90 } 94 else value=NULL; 95 96 //cleanup sizes array 97 if(sizes) xDelete<int>(sizes); 98 91 else{ 92 this->value=NULL; 93 } 99 94 } 100 95 /*}}}*/
Note:
See TracChangeset
for help on using the changeset viewer.