source: issm/trunk-jpl/src/c/objects/Params/StringParam.cpp@ 12365

Last change on this file since 12365 was 12365, checked in by Mathieu Morlighem, 13 years ago

Do not number folds (folding is automated)

File size: 2.7 KB
RevLine 
[3683]1/*!\file StringParam.c
2 * \brief: implementation of the StringParam object
3 */
4
5/*header files: */
[12365]6/*{{{*/
[3683]7#ifdef HAVE_CONFIG_H
[9320]8 #include <config.h>
[3683]9#else
10#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
11#endif
12
[9320]13#include <stdio.h>
[3683]14#include <string.h>
15#include "../objects.h"
16#include "../../EnumDefinitions/EnumDefinitions.h"
17#include "../../shared/shared.h"
[4236]18#include "../../Container/Container.h"
[3775]19#include "../../include/include.h"
[3683]20/*}}}*/
21
[4248]22/*StringParam constructors and destructor*/
[12365]23/*FUNCTION StringParam::StringParam(){{{*/
[3683]24StringParam::StringParam(){
25 return;
26}
27/*}}}*/
[12365]28/*FUNCTION StringParam::StringParam(int enum_type,IssmString value){{{*/
[3683]29StringParam::StringParam(int in_enum_type,char* in_value){
30
31 enum_type=in_enum_type;
32 value=(char*)xmalloc((strlen(in_value)+1)*sizeof(char));
[9336]33 memcpy(value,in_value,(strlen(in_value)+1)*sizeof(char));
34
[3683]35
36}
37/*}}}*/
[12365]38/*FUNCTION StringParam::~StringParam(){{{*/
[3683]39StringParam::~StringParam(){
40 xfree((void**)&value);
41}
42/*}}}*/
43
[4248]44/*Object virtual functions definitions:*/
[12365]45/*FUNCTION StringParam::Echo {{{*/
[4248]46void StringParam::Echo(void){
47 this->DeepEcho();
[3683]48}
49/*}}}*/
[12365]50/*FUNCTION StringParam::DeepEcho{{{*/
[3683]51void StringParam::DeepEcho(void){
52 printf("StringParam:\n");
[8224]53 printf(" enum: %i (%s)\n",this->enum_type,EnumToStringx(this->enum_type));
[3761]54 printf(" value: %s\n",this->value);
[3683]55}
56/*}}}*/
[12365]57/*FUNCTION StringParam::Id{{{*/
[4248]58int StringParam::Id(void){ return -1; }
[3683]59/*}}}*/
[12365]60/*FUNCTION StringParam::MyRank{{{*/
[4248]61int StringParam::MyRank(void){
62 extern int my_rank;
63 return my_rank;
[3683]64}
65/*}}}*/
[12365]66/*FUNCTION StringParam::ObjectEnum{{{*/
[9883]67int StringParam::ObjectEnum(void){
[4248]68
69 return StringParamEnum;
70
71}
72/*}}}*/
[12365]73/*FUNCTION StringParam::copy{{{*/
[4248]74Object* StringParam::copy() {
75
76 return new StringParam(this->enum_type,this->value);
77
78}
79/*}}}*/
80
81/*StringParam virtual functions definitions: */
[12365]82/*FUNCTION StringParam::GetParameterValue{{{*/
[3683]83void StringParam::GetParameterValue(char** pstring){
84
85 char* outstring=NULL;
86 int stringsize;
87
88 stringsize=strlen(this->value)+1;
89
90 outstring=(char*)xmalloc(stringsize*sizeof(char));
91 memcpy(outstring,this->value,stringsize*sizeof(char));
92
93 *pstring=outstring;
94
95}
96/*}}}*/
[12365]97/*FUNCTION StringParam::GetParameterName{{{*/
[11202]98void StringParam::GetParameterName(char**pname){
99 EnumToStringx(pname,this->enum_type);
[3683]100}
101/*}}}*/
[12365]102/*FUNCTION StringParam::SetValue{{{*/
[4059]103void StringParam::SetValue(char* string){
104
105 int stringsize;
106
107 /*avoid leak: */
108 xfree((void**)&this->value);
109
110 /*copy: */
111 stringsize=strlen(string)+1;
112 this->value=(char*)xmalloc(stringsize*sizeof(char));
113 memcpy(this->value,string,stringsize*sizeof(char));
114
115}
116/*}}}*/
[12365]117/*FUNCTION StringParam::UnitConversion{{{*/
[9356]118void StringParam::UnitConversion(int direction_enum){
119 /*do nothing, no unit conversion*/
120}
121/*}}}*/
Note: See TracBrowser for help on using the repository browser.