Main Page
Related Pages
Classes
Files
File List
File Members
src
ibsimu.hpp
Go to the documentation of this file.
1
5
/* Copyright (c) 2010-2011 Taneli Kalvas. All rights reserved.
6
*
7
* You can redistribute this software and/or modify it under the terms
8
* of the GNU General Public License as published by the Free Software
9
* Foundation; either version 2 of the License, or (at your option)
10
* any later version.
11
*
12
* This library is distributed in the hope that it will be useful, but
13
* WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with this library (file "COPYING" included in the package);
19
* if not, write to the Free Software Foundation, Inc., 51 Franklin
20
* Street, Fifth Floor, Boston, MA 02110-1301 USA
21
*
22
* If you have questions about your rights to use or distribute this
23
* software, please contact Berkeley Lab's Technology Transfer
24
* Department at TTD@lbl.gov. Other questions, comments and bug
25
* reports should be sent directly to the author via email at
26
* taneli.kalvas@jyu.fi.
27
*
28
* NOTICE. This software was developed under partial funding from the
29
* U.S. Department of Energy. As such, the U.S. Government has been
30
* granted for itself and others acting on its behalf a paid-up,
31
* nonexclusive, irrevocable, worldwide license in the Software to
32
* reproduce, prepare derivative works, and perform publicly and
33
* display publicly. Beginning five (5) years after the date
34
* permission to assert copyright is obtained from the U.S. Department
35
* of Energy, and subject to any subsequent five (5) year renewals,
36
* the U.S. Government is granted for itself and others acting on its
37
* behalf a paid-up, nonexclusive, irrevocable, worldwide license in
38
* the Software to reproduce, prepare derivative works, distribute
39
* copies to the public, perform publicly and display publicly, and to
40
* permit others to do so.
41
*/
42
43
44
#ifndef IBSIMU_HPP
45
#define IBSIMU_HPP 1
46
47
48
#include <string>
49
#include <iostream>
50
#include <fstream>
51
52
53
class
Timer
;
54
55
61
class
IBSimu
62
{
63
Timer
*_t;
64
65
bool
_hello;
66
int
_verbose_output;
67
int
_threadcount;
68
69
bool
_is_cout;
// True if vout is std::cout
70
std::ostream *_vout;
// Verbose output stream
71
72
std::ofstream _fout;
// Verbose output file
73
74
IBSimu
(
const
IBSimu
&ibs ) : _vout(ibs._vout) {}
75
76
const
IBSimu
&operator=(
const
IBSimu
&ibs ) {
return
( *
this
); }
77
78
public
:
79
82
IBSimu
();
83
86
~IBSimu
();
87
92
std::ostream &
set_vout
( std::ostream &
vout
);
93
102
std::ostream &
set_vout
(
const
std::string &filename );
103
106
std::ostream &
vout
(
void
);
107
110
bool
vout_is_cout
();
111
114
void
set_verbose_output
(
int
level );
115
118
int
get_verbose_output
(
void
) {
return
( _verbose_output ); }
119
122
void
set_thread_count
(
int
threadcount );
123
126
int
get_thread_count
(
void
) {
return
( _threadcount ); }
127
132
void
halt
(
void
);
133
};
134
135
138
extern
IBSimu
ibsimu
;
139
140
141
#endif
142
Reference manual for Ion Beam Simulator 1.0.5b
Generated on by
Doxygen
1.8.1.2 on Mon Sep 24 2012 12:37:00.