RepastHPC
2.3.1
src
repast_hpc
SVDataSource.h
1
/*
2
* Repast for High Performance Computing (Repast HPC)
3
*
4
* Copyright (c) 2010 Argonne National Laboratory
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with
8
* or without modification, are permitted provided that the following
9
* conditions are met:
10
*
11
* Redistributions of source code must retain the above copyright notice,
12
* this list of conditions and the following disclaimer.
13
*
14
* Redistributions in binary form must reproduce the above copyright notice,
15
* this list of conditions and the following disclaimer in the documentation
16
* and/or other materials provided with the distribution.
17
*
18
* Neither the name of the Argonne National Laboratory nor the names of its
19
* contributors may be used to endorse or promote products derived from
20
* this software without specific prior written permission.
21
*
22
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
25
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE TRUSTEES OR
26
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
27
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
28
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
29
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
30
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
31
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
32
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
*
34
*
35
* DataSource.h
36
*
37
* Created on: Aug 23, 2010
38
* Author: nick
39
*/
40
41
#ifndef SVDATASOURCE_H_
42
#define SVDATASOURCE_H_
43
44
#include <fstream>
45
46
#include "Variable.h"
47
48
namespace
repast {
49
54
class
SVDataSource
{
55
56
protected
:
57
std::string _name;
58
59
public
:
60
enum
DataType {INT, DOUBLE};
61
62
SVDataSource
(
const
std::string& name) : _name(name) {}
63
virtual
~
SVDataSource
() {};
64
virtual
void
record() = 0;
65
virtual
void
write(
Variable
* var) = 0;
66
virtual
DataType type()
const
= 0;
67
68
const
std::string name()
const
{
69
return
_name;
70
}
71
};
72
73
77
template
<
typename
T>
78
struct
data_type_traits
{};
79
83
template
<>
84
struct
data_type_traits
<int> {
85
static
inline
SVDataSource::DataType data_type() {
86
return
SVDataSource::INT;
87
}
88
};
89
93
template
<>
94
struct
data_type_traits
<double> {
95
static
inline
SVDataSource::DataType data_type() {
96
return
SVDataSource::DOUBLE;
97
}
98
};
99
100
}
101
102
#endif
/* DATASOURCE_H_ */
repast::Variable
Used in SVDataSet to manage and store the data.
Definition:
Variable.h:52
repast::data_type_traits
Base class for specialized int and double type classes.
Definition:
SVDataSource.h:78
repast::SVDataSource
Data source for data to be written into separated-value data sets.
Definition:
SVDataSource.h:54
Generated on Thu Oct 21 2021 10:07:40 for RepastHPC by
1.8.17