source: issm/trunk-jpl/src/c/Container/Results.cpp@ 13797

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

CHG: use dynamic_cast instead of C-style casting

File size: 1.8 KB
Line 
1/*
2 * \file Results.c
3 * \brief: implementation of the Results class, derived from DataSet class
4 */
5
6/*Headers: {{{*/
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 <vector>
14#include <functional>
15#include <algorithm>
16#include <iostream>
17
18#include "./DataSet.h"
19#include "../shared/shared.h"
20#include "../include/include.h"
21#include "../EnumDefinitions/EnumDefinitions.h"
22
23using namespace std;
24/*}}}*/
25
26/*Object constructors and destructor*/
27/*FUNCTION Results::Results(){{{*/
28Results::Results(){
29 enum_type=ResultsEnum;
30 return;
31}
32/*}}}*/
33/*FUNCTION Results::~Results(){{{*/
34Results::~Results(){
35 return;
36}
37/*}}}*/
38
39/*Object management*/
40/*FUNCTION Results::SpawnTriaResults{{{*/
41Results* Results::SpawnTriaResults(int* indices){
42
43 /*Intermediary*/
44 vector<Object*>::iterator object;
45 ElementResult* resultin=NULL;
46 ElementResult* resultout=NULL;
47
48 /*Output*/
49 Results* newresults=new Results();
50
51 /*Go through results and call Spawn function*/
52 for ( object=objects.begin() ; object < objects.end(); object++ ){
53
54 /*Create new result*/
55 resultin=(ElementResult*)(*object);
56 resultout=resultin->SpawnTriaElementResult(indices);
57
58 /*Add result to new results*/
59 newresults->AddObject((Object*)resultout);
60 }
61
62 /*Assign output pointer*/
63 return newresults;
64}
65/*}}}*/
66/*FUNCTION Results::Write{{{*/
67void Results::Write(Parameters* parameters){
68
69 int i;
70 FILE *fid = NULL;
71 bool io_gather=true;
72
73 /*Recover file descriptor: */
74 parameters->FindParam(&fid,OutputFilePointerEnum);
75 parameters->FindParam(&io_gather,SettingsIoGatherEnum);
76
77 for(i=0;i<this->Size();i++){
78 ExternalResult* result=dynamic_cast<ExternalResult*>(this->GetObjectByOffset(i));
79
80 /*write result to disk: */
81 result->WriteData(fid,io_gather);
82 }
83
84}
85/*}}}*/
Note: See TracBrowser for help on using the repository browser.