AUI Framework
master
Cross-platform module-based framework for developing C++20 desktop applications
PipeOutputStream.h
1
/*
2
* AUI Framework - Declarative UI toolkit for modern C++20
3
* Copyright (C) 2020-2024 Alex2772 and Contributors
4
*
5
* SPDX-License-Identifier: MPL-2.0
6
*
7
* This Source Code Form is subject to the terms of the Mozilla Public
8
* License, v. 2.0. If a copy of the MPL was not distributed with this
9
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
10
*/
11
12
#pragma once
13
14
#include <AUI/IO/IOutputStream.h>
15
#include "Pipe.h"
16
17
class
PipeOutputStream
:
public
IOutputStream
{
18
public
:
19
explicit
PipeOutputStream
(
Pipe
pipe);
20
~PipeOutputStream
();
21
22
void
write
(
const
char
* src,
size_t
size)
override
;
23
24
private
:
25
Pipe
mPipe;
26
27
#if AUI_PLATFORM_UNIX
28
FILE* mFileHandle;
29
#endif
30
};
IOutputStream
Definition:
IOutputStream.h:20
PipeOutputStream
Definition:
PipeOutputStream.h:17
PipeOutputStream::write
void write(const char *src, size_t size) override
Writes exact size bytes to stream. Blocking (waiting for write all data) is allowed.
Definition:
PipeOutputStreamImpl.cpp:23
Pipe
Unix pipe RAII wrapper.
Definition:
Pipe.h:30