roo_io
API Documentation for roo_io
Loading...
Searching...
No Matches
stream_output_stream.h
Go to the documentation of this file.
1
#pragma once
2
3
#if (defined ARDUINO)
4
5
#include <Arduino.h>
6
7
#include "
roo_io/core/output_stream.h
"
8
9
namespace
roo_io
{
10
11
/// Adapter exposing Arduino `Stream` as `OutputStream`.
12
///
13
/// Stream remains open until `close()` is called.
14
class
ArduinoStreamOutputStream
:
public
OutputStream {
15
public
:
16
/// Creates adapter over Arduino `Print`.
17
ArduinoStreamOutputStream
(
Stream
&
output
);
18
19
/// Non-blocking write.
20
///
21
/// Updates status.
22
///
23
/// @return Number of bytes written.
24
size_t
tryWrite(
const
byte
*
buf
,
size_t
count
)
override
;
25
26
/// Potentially blocking write.
27
///
28
/// Updates status.
29
///
30
/// @return Number of bytes written.
31
size_t
write(
const
byte
*
buf
,
size_t
count
)
override
;
32
33
/// Writes exactly `count` bytes unless stream becomes unavailable.
34
///
35
/// Updates status.
36
///
37
/// @return Number of bytes written.
38
size_t
writeFully(
const
byte
*
buf
,
size_t
count
)
override
;
39
40
/// Flushes buffered output to sink.
41
///
42
/// Updates status.
43
void
flush()
override
;
44
45
/// Closes adapter by setting status to `kClosed`.
46
///
47
/// Updates status.
48
void
close()
override
;
49
50
/// Returns current status.
51
///
52
/// @return Current status value.
53
Status
status()
const override
{
return
status_; }
54
55
private
:
56
Stream
& output_;
57
mutable
Status
status_;
58
};
59
60
}
// namespace roo_io
61
62
#endif
// (defined ARDUINO)
roo_io
Definition
byte.h:6
roo_io::basic_string_view
roo::basic_string_view< CharT, Traits > basic_string_view
Definition
string_view.h:8
roo_io::count
size_t count
Definition
compare.h:45
roo_io::Status
Status
Definition
status.h:7
output_stream.h
temp_repos
roo_io
src
roo_io
stream
arduino
stream_output_stream.h
Generated by
1.9.8