paludis
Version 3.0.2
The one true package mangler
paludis
util
string_list_stream.hh
1
/* vim: set sw=4 sts=4 et foldmethod=syntax : */
2
3
/*
4
* Copyright (c) 2009, 2010, 2011 Ciaran McCreesh
5
*
6
* This file is part of the Paludis package manager. Paludis is free software;
7
* you can redistribute it and/or modify it under the terms of the GNU General
8
* Public License version 2, as published by the Free Software Foundation.
9
*
10
* Paludis is distributed in the hope that it will be useful, but WITHOUT ANY
11
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
13
* details.
14
*
15
* You should have received a copy of the GNU General Public License along with
16
* this program; if not, write to the Free Software Foundation, Inc., 59 Temple
17
* Place, Suite 330, Boston, MA 02111-1307 USA
18
*/
19
20
#ifndef PALUDIS_GUARD_PALUDIS_UTIL_STRING_LIST_STREAM_HH
21
#define PALUDIS_GUARD_PALUDIS_UTIL_STRING_LIST_STREAM_HH 1
22
23
#include <paludis/util/string_list_stream-fwd.hh>
24
#include <
paludis/util/pimp.hh
>
25
#include <
paludis/util/attributes.hh
>
26
#include <istream>
27
#include <ostream>
28
29
namespace
paludis
30
{
31
class
PALUDIS_VISIBLE
StringListStreamBuf :
32
public
std::streambuf
33
{
34
private
:
35
Pimp<StringListStreamBuf>
_imp;
36
37
protected
:
38
int_type underflow()
override
;
39
40
int_type overflow(int_type c)
override
;
41
std::streamsize xsputn(
const
char
* s, std::streamsize num)
override
;
42
43
public
:
44
StringListStreamBuf();
45
~StringListStreamBuf()
override
;
46
47
void
nothing_more_to_write();
48
};
49
50
class
PALUDIS_VISIBLE
StringListStreamBase
51
{
52
protected
:
53
StringListStreamBuf
buf;
54
55
public
:
56
StringListStreamBase();
57
~StringListStreamBase() =
default
;
58
};
59
60
class
PALUDIS_VISIBLE
StringListStream :
61
protected
StringListStreamBase,
62
public
std::istream,
63
public
std::ostream
64
{
65
public
:
66
StringListStream();
67
~StringListStream()
override
=
default
;
68
69
void
nothing_more_to_write();
70
};
71
72
extern
template
class
Pimp<StringListStreamBuf>
;
73
}
74
75
#endif
attributes.hh
paludis::Pimp
Definition
pimp.hh:52
paludis::StringListStreamBuf
Definition
string_list_stream.hh:33
PALUDIS_VISIBLE
#define PALUDIS_VISIBLE
Definition
attributes.hh:59
paludis
Definition
about_metadata-fwd.hh:24
pimp.hh
Generated by
1.18.0