source: issm/trunk-jpl/src/c/classes/Params/IntMatParam.cpp

Last change on this file was 25508, checked in by Mathieu Morlighem, 4 years ago

CHG: Marshall2 -> Marshall

File size: 2.4 KB
Line 
1/*!\file IntMatParam.c
2 * \brief: implementation of the IntMatParam object
3 */
4
5/*header files: */
6/*{{{*/
7#ifdef HAVE_CONFIG_H
8 #include <config.h>
9#else
10#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
11#endif
12
13#include "../classes.h"
14#include "shared/shared.h"
15/*}}}*/
16
17/*IntMatParam constructors and destructor*/
18IntMatParam::IntMatParam(){/*{{{*/
19 return;
20}
21/*}}}*/
22IntMatParam::IntMatParam(int in_enum_type,int* in_value, int in_M,int in_N){/*{{{*/
23
24 enum_type=in_enum_type;
25 M=in_M;
26 N=in_N;
27
28 value=xNew<int>(M*N);
29 xMemCpy<int>(value,in_value,M*N);
30}
31/*}}}*/
32IntMatParam::~IntMatParam(){/*{{{*/
33 xDelete<int>(value);
34 return;
35}
36/*}}}*/
37
38/*Object virtual functions definitions:*/
39Param* IntMatParam::copy() {/*{{{*/
40
41 return new IntMatParam(this->enum_type,this->value,this->M,this->N);
42
43}
44/*}}}*/
45void IntMatParam::DeepEcho(void){/*{{{*/
46
47 int i,j;
48
49 _printf_("IntMatParam:\n");
50 _printf_(" enum: " << this->enum_type << " (" << EnumToStringx(this->enum_type) << ")\n");
51 _printf_(" matrix size: " << this->M << "x" << this->N << "\n");
52 for(i=0;i<this->M;i++){
53 for(j=0;j<this->N;j++){
54 _printf_("(" << i << "," << j << ") " << *(this->value+N*i+j) << "\n");
55 }
56 }
57}
58/*}}}*/
59void IntMatParam::Echo(void){/*{{{*/
60
61 _printf_("IntMatParam:\n");
62 _printf_(" enum: " << this->enum_type << " (" << EnumToStringx(this->enum_type) << ")\n");
63 _printf_(" matrix size: " << this->M << "x" << this->N << "\n");
64
65}
66/*}}}*/
67int IntMatParam::Id(void){ return -1; }/*{{{*/
68/*}}}*/
69void IntMatParam::Marshall(MarshallHandle* marshallhandle){ /*{{{*/
70
71 int object_enum = IntMatParamEnum;
72 marshallhandle->call(object_enum);
73
74 marshallhandle->call(this->enum_type);
75 marshallhandle->call(this->M);
76 marshallhandle->call(this->N);
77 marshallhandle->call(this->value,M*N);
78}
79/*}}}*/
80int IntMatParam::ObjectEnum(void){/*{{{*/
81
82 return IntMatParamEnum;
83
84}
85/*}}}*/
86
87/*IntMatParam virtual functions definitions: */
88void IntMatParam::GetParameterValue(int** pintarray,int* pM,int* pN){/*{{{*/
89 int* output=NULL;
90
91 output=xNew<int>(M*N);
92 xMemCpy<int>(output,value,M*N);
93
94 /*Assign output pointers:*/
95 if(pM) *pM=M;
96 if(pN) *pN=N;
97 *pintarray=output;
98}
99/*}}}*/
100void IntMatParam::SetValue(int* intarray,int in_M,int in_N){/*{{{*/
101
102 /*avoid leak: */
103 xDelete<int>(this->value);
104
105 this->value=xNew<int>(in_M*in_N);
106 xMemCpy<int>(this->value,intarray,in_M*in_N);
107
108 this->M=in_M;
109 this->N=in_N;
110}
111/*}}}*/
Note: See TracBrowser for help on using the repository browser.