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

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

merged trunk-jpl and trunk for revision 13974

File size: 2.6 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/*FUNCTION StringParam::~StringParam(){{{*/
38StringParam::~StringParam(){
39 xDelete<char>(value);
40}
41/*}}}*/
42
43/*Object virtual functions definitions:*/
44/*FUNCTION StringParam::Echo {{{*/
45void StringParam::Echo(void){
46 this->DeepEcho();
47}
48/*}}}*/
49/*FUNCTION StringParam::DeepEcho{{{*/
50void StringParam::DeepEcho(void){
51 _printLine_("StringParam:");
52 _printLine_(" enum: " << this->enum_type << " (" << EnumToStringx(this->enum_type) << ")");
53 _printLine_(" value: " << this->value);
54}
55/*}}}*/
56/*FUNCTION StringParam::Id{{{*/
57int StringParam::Id(void){ return -1; }
58/*}}}*/
59/*FUNCTION StringParam::ObjectEnum{{{*/
60int StringParam::ObjectEnum(void){
61
62 return StringParamEnum;
63
64}
65/*}}}*/
66/*FUNCTION StringParam::copy{{{*/
67Object* StringParam::copy() {
68
69 return new StringParam(this->enum_type,this->value);
70
71}
72/*}}}*/
73
74/*StringParam virtual functions definitions: */
75/*FUNCTION StringParam::GetParameterValue{{{*/
76void StringParam::GetParameterValue(char** pstring){
77
78 char* outstring=NULL;
79 int stringsize;
80
81 stringsize=strlen(this->value)+1;
82
83 outstring=xNew<char>(stringsize);
84 xMemCpy<char>(outstring,this->value,stringsize);
85
86 *pstring=outstring;
87
88}
89/*}}}*/
90/*FUNCTION StringParam::GetParameterName{{{*/
91void StringParam::GetParameterName(char**pname){
92 EnumToStringx(pname,this->enum_type);
93}
94/*}}}*/
95/*FUNCTION StringParam::SetValue{{{*/
96void StringParam::SetValue(char* string){
97
98 int stringsize;
99
100 /*avoid leak: */
101 xDelete<char>(this->value);
102
103 /*copy: */
104 stringsize=strlen(string)+1;
105 this->value=xNew<char>(stringsize);
106 xMemCpy<char>(this->value,string,stringsize);
107
108}
109/*}}}*/
110/*FUNCTION StringParam::UnitConversion{{{*/
111void StringParam::UnitConversion(int direction_enum){
112 /*do nothing, no unit conversion*/
113}
114/*}}}*/
Note: See TracBrowser for help on using the repository browser.