Ice Sheet System Model  4.18
Code documentation
Public Member Functions
Results Class Reference

Declaration of Results class. More...

#include <Results.h>

Inheritance diagram for Results:
DataSet

Public Member Functions

 Results ()
 
 ~Results ()
 
int AddResult (ExternalResult *result)
 
int DeleteResult (int result_enum, int result_step)
 
ExternalResultFindResult (int result_enum)
 
void Write (Parameters *parameters)
 
- Public Member Functions inherited from DataSet
 DataSet ()
 
 DataSet (int enum_type)
 
 ~DataSet ()
 
void Marshall (char **pmarshalled_data, int *pmarshalled_data_size, int marshall_direction)
 
int GetEnum ()
 
int GetEnum (int offset)
 
void Echo ()
 
void DeepEcho ()
 
int AddObject (Object *object)
 
int DeleteObject (int id)
 
int Size ()
 
void clear ()
 
ObjectGetObjectByOffset (int offset)
 
ObjectGetObjectById (int *poffset, int eid)
 
void Presort ()
 
void Sort ()
 
DataSetCopy (void)
 
int DeleteObject (Object *object)
 

Additional Inherited Members

- Data Fields inherited from DataSet
std::vector< Object * > objects
 
int enum_type
 
int sorted
 
int presorted
 
int numsorted
 
int * sorted_ids
 
int * id_offsets
 

Detailed Description

Declaration of Results class.

Declaration of Results class. Results are vector lists (Containers) of Result objects.

Definition at line 14 of file Results.h.

Constructor & Destructor Documentation

◆ Results()

Results::Results ( )

Definition at line 22 of file Results.cpp.

22  {/*{{{*/
24  return;
25 }

◆ ~Results()

Results::~Results ( )

Definition at line 27 of file Results.cpp.

27  {/*{{{*/
28  return;
29 }

Member Function Documentation

◆ AddResult()

int Results::AddResult ( ExternalResult result)

Definition at line 33 of file Results.cpp.

33  {/*{{{*/
34 
35  /*First, go through dataset of inputs and check whether any input
36  * with the same name is already in. If so, erase the corresponding
37  * object before adding this new one: */
38 
39  /*In debugging mode, check that the input is not a NULL pointer*/
40  _assert_(in_result);
41 
42  for(int i=0;i<this->Size();i++){
43  ExternalResult* result=xDynamicCast<ExternalResult*>(this->GetObjectByOffset(i));
44 
45  if(result->GetStep()==in_result->GetStep()){
46  char* result_name = result->GetResultName();
47  char* in_result_name = in_result->GetResultName();
48  if(strcmp(in_result_name,result_name)==0){
49 
50  this->DeleteObject(result);
51  xDelete<char>(result_name);
52  xDelete<char>(in_result_name);
53  break;
54  }
55  xDelete<char>(result_name);
56  xDelete<char>(in_result_name);
57  }
58  }
59  this->AddObject(in_result);
60 
61  return 1;
62 }

◆ DeleteResult()

int Results::DeleteResult ( int  result_enum,
int  result_step 
)

Definition at line 64 of file Results.cpp.

64  {/*{{{*/
65 
66  for(int i=0;i<this->Size();i++){
67  ExternalResult* result=xDynamicCast<ExternalResult*>(this->GetObjectByOffset(i));
68 
69  if(result->GetStep()==result_step){
70  if(strcmp(result->GetResultName(),EnumToStringx(result_enum))==0){
71  this->DeleteObject(result);
72  break;
73  }
74  }
75  }
76 
77  return 1;
78 }

◆ FindResult()

ExternalResult * Results::FindResult ( int  result_enum)

Definition at line 80 of file Results.cpp.

80  {/*{{{*/
81 
82  for(int i=0;i<this->Size();i++){
83  ExternalResult* result=xDynamicCast<ExternalResult*>(this->GetObjectByOffset(i));
84 
85  if(result->GetResultEnum()==result_enum){
86  return result;
87  }
88  }
89  return NULL;
90 }

◆ Write()

void Results::Write ( Parameters parameters)

Definition at line 92 of file Results.cpp.

92  {/*{{{*/
93 
94  FILE *fid = NULL;
95  bool io_gather;
96 
97  /*Recover file descriptor: */
98  parameters->FindParam(&fid,OutputFilePointerEnum);
99  parameters->FindParam(&io_gather,SettingsIoGatherEnum);
100 
101  for(int i=0;i<this->Size();i++){
102  ExternalResult* result=xDynamicCast<ExternalResult*>(this->GetObjectByOffset(i));
103  result->WriteData(fid,io_gather);
104  }
105 
106 }

The documentation for this class was generated from the following files:
DataSet::Size
int Size()
Definition: DataSet.cpp:399
_assert_
#define _assert_(ignore)
Definition: exceptions.h:37
DataSet::AddObject
int AddObject(Object *object)
Definition: DataSet.cpp:252
ExternalResult::GetStep
virtual int GetStep(void)=0
ExternalResult
Definition: ExternalResult.h:21
DataSet::DeleteObject
int DeleteObject(int id)
EnumToStringx
const char * EnumToStringx(int enum_in)
Definition: EnumToStringx.cpp:15
ExternalResult::WriteData
virtual void WriteData(FILE *fid, bool io_gather)=0
DataSet::enum_type
int enum_type
Definition: DataSet.h:22
DataSet::GetObjectByOffset
Object * GetObjectByOffset(int offset)
Definition: DataSet.cpp:334
ResultsEnum
@ ResultsEnum
Definition: EnumDefinitions.h:300
ExternalResult::GetResultName
virtual char * GetResultName(void)=0
Parameters::FindParam
void FindParam(bool *pinteger, int enum_type)
Definition: Parameters.cpp:262
OutputFilePointerEnum
@ OutputFilePointerEnum
Definition: EnumDefinitions.h:284
SettingsIoGatherEnum
@ SettingsIoGatherEnum
Definition: EnumDefinitions.h:334
ExternalResult::GetResultEnum
virtual int GetResultEnum(void)=0