source: issm/trunk/src/c/classes/objects/Params/StringParam.cpp@ 13395

Last change on this file since 13395 was 13395, checked in by Mathieu Morlighem, 12 years ago

merged trunk-jpl and trunk for revision 13393

File size: 2.7 KB
Line 
1/*!\file StringParam.c
2 * \brief: implementation of the StringParam 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 <stdio.h>
14#include <string.h>
15#include "../objects.h"
16#include "../../../EnumDefinitions/EnumDefinitions.h"
17#include "../../../shared/shared.h"
18#include "../../../Container/Container.h"
19#include "../../../include/include.h"
20/*}}}*/
21
22/*StringParam constructors and destructor*/
23/*FUNCTION StringParam::StringParam(){{{*/
24StringParam::StringParam(){
25 return;
26}
27/*}}}*/
28/*FUNCTION StringParam::StringParam(int enum_type,IssmString value){{{*/
29StringParam::StringParam(int in_enum_type,char* in_value){
30
31 enum_type=in_enum_type;
32 value=xNew<char>(strlen(in_value)+1);
33 xMemCpy<char>(value,in_value,(strlen(in_value)+1));
34
35
36}
37/*}}}*/
38/*FUNCTION StringParam::~StringParam(){{{*/
39StringParam::~StringParam(){
40 xDelete<char>(value);
41}
42/*}}}*/
43
44/*Object virtual functions definitions:*/
45/*FUNCTION StringParam::Echo {{{*/
46void StringParam::Echo(void){
47 this->DeepEcho();
48}
49/*}}}*/
50/*FUNCTION StringParam::DeepEcho{{{*/
51void StringParam::DeepEcho(void){
52 _printLine_("StringParam:");
53 _printLine_(" enum: " << this->enum_type << " (" << EnumToStringx(this->enum_type) << ")");
54 _printLine_(" value: " << this->value);
55}
56/*}}}*/
57/*FUNCTION StringParam::Id{{{*/
58int StringParam::Id(void){ return -1; }
59/*}}}*/
60/*FUNCTION StringParam::MyRank{{{*/
61int StringParam::MyRank(void){
62 extern int my_rank;
63 return my_rank;
64}
65/*}}}*/
66/*FUNCTION StringParam::ObjectEnum{{{*/
67int StringParam::ObjectEnum(void){
68
69 return StringParamEnum;
70
71}
72/*}}}*/
73/*FUNCTION StringParam::copy{{{*/
74Object* StringParam::copy() {
75
76 return new StringParam(this->enum_type,this->value);
77
78}
79/*}}}*/
80
81/*StringParam virtual functions definitions: */
82/*FUNCTION StringParam::GetParameterValue{{{*/
83void StringParam::GetParameterValue(char** pstring){
84
85 char* outstring=NULL;
86 int stringsize;
87
88 stringsize=strlen(this->value)+1;
89
90 outstring=xNew<char>(stringsize);
91 xMemCpy<char>(outstring,this->value,stringsize);
92
93 *pstring=outstring;
94
95}
96/*}}}*/
97/*FUNCTION StringParam::GetParameterName{{{*/
98void StringParam::GetParameterName(char**pname){
99 EnumToStringx(pname,this->enum_type);
100}
101/*}}}*/
102/*FUNCTION StringParam::SetValue{{{*/
103void StringParam::SetValue(char* string){
104
105 int stringsize;
106
107 /*avoid leak: */
108 xDelete<char>(this->value);
109
110 /*copy: */
111 stringsize=strlen(string)+1;
112 this->value=xNew<char>(stringsize);
113 xMemCpy<char>(this->value,string,stringsize);
114
115}
116/*}}}*/
117/*FUNCTION StringParam::UnitConversion{{{*/
118void StringParam::UnitConversion(int direction_enum){
119 /*do nothing, no unit conversion*/
120}
121/*}}}*/
Note: See TracBrowser for help on using the repository browser.