Toolbox
snapshot
The Reactive C++ Toolbox
Loading...
Searching...
No Matches
toolbox
io
Stream.cpp
Go to the documentation of this file.
1
// The Reactive C++ Toolbox.
2
// Copyright (C) 2013-2019 Swirly Cloud Limited
3
// Copyright (C) 2021 Reactive Markets Limited
4
//
5
// Licensed under the Apache License, Version 2.0 (the "License");
6
// you may not use this file except in compliance with the License.
7
// You may obtain a copy of the License at
8
//
9
// http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing, software
12
// distributed under the License is distributed on an "AS IS" BASIS,
13
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
// See the License for the specific language governing permissions and
15
// limitations under the License.
16
17
#include "
Stream.hpp
"
18
19
namespace
toolbox
{
20
inline
namespace
io {
21
using namespace
std
;
22
23
StreamBuf::~StreamBuf
() =
default
;
24
25
StreamBuf::int_type
StreamBuf::overflow
(
int_type
c
)
noexcept
26
{
27
if
(
c
!= traits_type::eof()) {
28
auto
buf
= buf_.prepare(pcount_ + 1);
29
pbase_ =
buffer_cast<char*>
(
buf
);
30
pbase_[pcount_++] =
c
;
31
}
32
return
c
;
33
}
34
35
streamsize
StreamBuf::xsputn
(
const
char_type
*
s
,
streamsize
count)
noexcept
36
{
37
auto
buf
= buf_.prepare(pcount_ + count);
38
pbase_ =
buffer_cast<char*>
(
buf
);
39
memcpy
(pbase_ + pcount_,
s
, count);
40
pcount_ += count;
41
return
count;
42
}
43
44
OStream::~OStream
() =
default
;
45
46
}
// namespace io
47
}
// namespace toolbox
toolbox::io::OStream::~OStream
~OStream() override
toolbox::io::StreamBuf::xsputn
std::streamsize xsputn(const char_type *s, std::streamsize count) noexcept override
toolbox::io::StreamBuf::~StreamBuf
~StreamBuf() override
toolbox::io::StreamBuf::overflow
int_type overflow(int_type c) noexcept override
Definition
Stream.cpp:25
std
STL namespace.
toolbox::util::bind
constexpr auto bind() noexcept
Definition
Slot.hpp:92
toolbox
Definition
Benchmark.cpp:26
Stream.hpp
Generated by
1.9.8