A library for working with phylogenetic and population genetic data.
v0.32.0
stream_output_target.hpp
Go to the documentation of this file.
1
#ifndef GENESIS_UTILS_IO_STREAM_OUTPUT_TARGET_H_
2
#define GENESIS_UTILS_IO_STREAM_OUTPUT_TARGET_H_
3
4
/*
5
Genesis - A toolkit for working with phylogenetic data.
6
Copyright (C) 2014-2020 Lucas Czech
7
8
This program is free software: you can redistribute it and/or modify
9
it under the terms of the GNU General Public License as published by
10
the Free Software Foundation, either version 3 of the License, or
11
(at your option) any later version.
12
13
This program is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
GNU General Public License for more details.
17
18
You should have received a copy of the GNU General Public License
19
along with this program. If not, see <http://www.gnu.org/licenses/>.
20
21
Contact:
22
Lucas Czech <lucas.czech@h-its.org>
23
Exelixis Lab, Heidelberg Institute for Theoretical Studies
24
Schloss-Wolfsbrunnenweg 35, D-69118 Heidelberg, Germany
25
*/
26
34
#include "
genesis/utils/io/base_output_target.hpp
"
35
36
#include <ostream>
37
#include <string>
38
39
namespace
genesis
{
40
namespace
utils {
41
42
// =================================================================================================
43
// Stream Output Target
44
// =================================================================================================
45
52
class
StreamOutputTarget
final :
public
BaseOutputTarget
53
{
54
public
:
55
56
// -------------------------------------------------------------
57
// Constructors and Rule of Five
58
// -------------------------------------------------------------
59
63
explicit
StreamOutputTarget
( std::ostream& target )
64
: target_( &target )
65
{}
66
67
StreamOutputTarget
(
StreamOutputTarget
const
& ) =
default
;
68
StreamOutputTarget
(
StreamOutputTarget
&& ) =
default
;
69
70
StreamOutputTarget
&
operator=
(
StreamOutputTarget
const
& ) =
default
;
71
StreamOutputTarget
&
operator=
(
StreamOutputTarget
&& ) =
default
;
72
73
~StreamOutputTarget
()
override
=
default
;
74
75
// -------------------------------------------------------------
76
// Overloaded Internal Members
77
// -------------------------------------------------------------
78
79
private
:
80
84
std::ostream& out_stream_()
override
85
{
86
return
*target_;
87
}
88
92
std::string target_name_()
const override
93
{
94
return
"output stream"
;
95
}
96
100
std::string target_string_()
const override
101
{
102
return
"stream"
;
103
}
104
105
// -------------------------------------------------------------
106
// Member Variables
107
// -------------------------------------------------------------
108
109
std::ostream* target_;
110
};
111
112
}
// namespace utils
113
}
// namespace genesis
114
115
#endif // include guard
genesis::utils::BaseOutputTarget
Abstract base class for writing data to an output target.
Definition:
base_output_target.hpp:59
genesis::utils::StreamOutputTarget
Output target for writing data to a stream.
Definition:
stream_output_target.hpp:52
genesis::utils::StreamOutputTarget::~StreamOutputTarget
~StreamOutputTarget() override=default
genesis
Container namespace for all symbols of genesis in order to keep them separate when used as a library.
Definition:
placement/formats/edge_color.cpp:42
genesis::utils::StreamOutputTarget::operator=
StreamOutputTarget & operator=(StreamOutputTarget const &)=default
base_output_target.hpp
genesis::utils::StreamOutputTarget::StreamOutputTarget
StreamOutputTarget(std::ostream &target)
Construct the output target to a string that is modified.
Definition:
stream_output_target.hpp:63
lib
genesis
utils
io
stream_output_target.hpp
Generated on Mon Aug 5 2024 16:57:53 for genesis by
1.8.17