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

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

Removing some unused SERIAL code

File size: 2.7 KB
RevLine 
[3683]1/*!\file StringParam.c
2 * \brief: implementation of the StringParam object
3 */
4
5/*header files: */
6/*{{{1*/
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*/
[3683]23/*FUNCTION StringParam::StringParam(){{{1*/
24StringParam::StringParam(){
25 return;
26}
27/*}}}*/
28/*FUNCTION StringParam::StringParam(int enum_type,IssmString value){{{1*/
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/*}}}*/
38/*FUNCTION StringParam::~StringParam(){{{1*/
39StringParam::~StringParam(){
40 xfree((void**)&value);
41}
42/*}}}*/
43
[4248]44/*Object virtual functions definitions:*/
45/*FUNCTION StringParam::Echo {{{1*/
46void StringParam::Echo(void){
47 this->DeepEcho();
[3683]48}
49/*}}}*/
50/*FUNCTION StringParam::DeepEcho{{{1*/
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/*}}}*/
[4248]57/*FUNCTION StringParam::Id{{{1*/
58int StringParam::Id(void){ return -1; }
[3683]59/*}}}*/
[4248]60/*FUNCTION StringParam::MyRank{{{1*/
61int StringParam::MyRank(void){
62 extern int my_rank;
63 return my_rank;
[3683]64}
65/*}}}*/
[9883]66/*FUNCTION StringParam::ObjectEnum{{{1*/
67int StringParam::ObjectEnum(void){
[4248]68
69 return StringParamEnum;
70
71}
72/*}}}*/
73/*FUNCTION StringParam::copy{{{1*/
74Object* StringParam::copy() {
75
76 return new StringParam(this->enum_type,this->value);
77
78}
79/*}}}*/
80
81/*StringParam virtual functions definitions: */
[4546]82/*FUNCTION StringParam::GetParameterValue{{{1*/
[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/*}}}*/
[4546]97/*FUNCTION StringParam::GetParameterName{{{1*/
[11202]98void StringParam::GetParameterName(char**pname){
99 EnumToStringx(pname,this->enum_type);
[3683]100}
101/*}}}*/
[4546]102/*FUNCTION StringParam::SetValue{{{1*/
[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/*}}}*/
[9356]117/*FUNCTION StringParam::UnitConversion{{{1*/
118void StringParam::UnitConversion(int direction_enum){
119 /*do nothing, no unit conversion*/
120}
121/*}}}*/
Note: See TracBrowser for help on using the repository browser.