source: issm/trunk-jpl/src/c/objects/Params/StringParam.h@ 11695

Last change on this file since 11695 was 11695, checked in by Eric.Larour, 13 years ago

Completed separation of Petsc from ISSM. Matrix and Vector
are now the vehicles for Mat and Vec objects when running with
Petsc, or double* when running with a custom made type of matrix (still
to be finished).

File size: 4.8 KB
Line 
1/*! \file StringParam.h
2 * \brief: header file for triavertexinput object
3 */
4
5
6#ifndef _STRINGPARAM_H_
7#define _STRINGPARAM_H_
8
9/*Headers:*/
10/*{{{1*/
11#ifdef HAVE_CONFIG_H
12 #include <config.h>
13#else
14#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
15#endif
16
17#ifdef _SERIAL_
18#include <mex.h>
19#endif
20
21#include "./Param.h"
22#include "../../include/include.h"
23#include "../../shared/shared.h"
24/*}}}*/
25
26class StringParam: public Param{
27
28 private:
29 /*just hold 3 values for 3 vertices: */
30 int enum_type;
31 char* value;
32
33 public:
34 /*StringParam constructors, destructors: {{{1*/
35 StringParam();
36 StringParam(int enum_type,char* value);
37 ~StringParam();
38 /*}}}*/
39 /*Object virtual functions definitions:{{{1 */
40 void Echo();
41 void DeepEcho();
42 int Id();
43 int MyRank();
44 #ifdef _SERIAL_
45 void Marshall(char** pmarshalled_dataset);
46 int MarshallSize();
47 void Demarshall(char** pmarshalled_dataset);
48 #endif
49 int ObjectEnum();
50 Object* copy();
51 /*}}}*/
52 /*Param vritual function definitions: {{{1*/
53 int InstanceEnum(){return enum_type;}
54 void GetParameterValue(bool* pbool){_error_("String param of enum %i (%s) cannot return a bool",enum_type,EnumToStringx(enum_type));}
55 void GetParameterValue(int* pinteger){_error_("String param of enum %i (%s) cannot return an integer",enum_type,EnumToStringx(enum_type));}
56 void GetParameterValue(int** pintarray,int* pM){_error_("String param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
57 void GetParameterValue(int** pintarray,int* pM,int* pN){_error_("String param of enum %i (%s) cannot return an array of integers",enum_type,EnumToStringx(enum_type));}
58 void GetParameterValue(double* pdouble){_error_("String param of enum %i (%s) cannot return a double",enum_type,EnumToStringx(enum_type));}
59 void GetParameterValue(char** pstring);
60 void GetParameterValue(char*** pstringarray,int* pM){_error_("String param of enum %i (%s) cannot return a string array",enum_type,EnumToStringx(enum_type));}
61 void GetParameterValue(double** pdoublearray,int* pM){_error_("String param of enum %i (%s) cannot return a double array",enum_type,EnumToStringx(enum_type));}
62 void GetParameterValue(double** pdoublearray,int* pM, int* pN){_error_("String param of enum %i (%s) cannot return a double array",enum_type,EnumToStringx(enum_type));}
63 void GetParameterValue(double*** parray, int* pM,int** pmdims, int** pndims){_error_("String param of enum %i (%s) cannot return a matrix array",enum_type,EnumToStringx(enum_type));}
64 void GetParameterValue(Vector** pvec){_error_("String param of enum %i (%s) cannot return a Vec",enum_type,EnumToStringx(enum_type));}
65 void GetParameterValue(Matrix** pmat){_error_("String param of enum %i (%s) cannot return a Mat",enum_type,EnumToStringx(enum_type));}
66 void GetParameterValue(FILE** pfid){_error_("Bool param of enum %i (%s) cannot return a FILE",enum_type,EnumToStringx(enum_type));}
67
68 void SetValue(bool boolean){_error_("String param of enum %i (%s) cannot hold a boolean",enum_type,EnumToStringx(enum_type));}
69 void SetValue(int integer){_error_("String param of enum %i (%s) cannot hold an integer",enum_type,EnumToStringx(enum_type));}
70 void SetValue(double scalar){_error_("String param of enum %i (%s) cannot hold a scalar",enum_type,EnumToStringx(enum_type));}
71 void SetValue(char* string);
72 void SetValue(char** stringarray,int M){_error_("String param of enum %i (%s) cannot hold a string array",enum_type,EnumToStringx(enum_type));}
73 void SetValue(double* doublearray,int M){_error_("String param of enum %i (%s) cannot hold a double array",enum_type,EnumToStringx(enum_type));}
74 void SetValue(double* pdoublearray,int M,int N){_error_("String param of enum %i (%s) cannot hold a double array",enum_type,EnumToStringx(enum_type));}
75 void SetValue(int* intarray,int M){_error_("String param of enum %i (%s) cannot hold a int array",enum_type,EnumToStringx(enum_type));}
76 void SetValue(int* pintarray,int M,int N){_error_("String param of enum %i (%s) cannot hold a int array",enum_type,EnumToStringx(enum_type));}
77 void SetValue(Vector* vec){_error_("String param of enum %i (%s) cannot hold a Vec",enum_type,EnumToStringx(enum_type));}
78 void SetValue(Matrix* mat){_error_("String param of enum %i (%s) cannot hold a Mat",enum_type,EnumToStringx(enum_type));}
79 void SetValue(FILE* fid){_error_("String param of enum %i (%s) cannot hold a FILE",enum_type,EnumToStringx(enum_type));}
80 void SetValue(double** array, int M, int* mdim_array, int* ndim_array){_error_("String param of enum %i (%s) cannot hold an array of matrices",enum_type,EnumToStringx(enum_type));}
81 void UnitConversion(int direction_enum);
82
83 void GetParameterName(char**pname);
84 #ifdef _SERIAL_
85 void SetMatlabField(mxArray* dataref);
86 #endif
87
88 /*}}}*/
89};
90#endif /* _STRINGPARAM_H */
Note: See TracBrowser for help on using the repository browser.