4#ifndef _Stroika_Foundation_IO_FileSystem_FileOutputStream_h_
5#define _Stroika_Foundation_IO_FileSystem_FileOutputStream_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
25 using Characters::String;
27 using namespace FileStream;
28 using namespace Streams;
44 eDEFAULT = eToOperatingSystem,
48 constexpr FlushFlag eToOperatingSystem = FlushFlag::eToOperatingSystem;
49 constexpr FlushFlag eToDisk = FlushFlag::eToDisk;
58 eDEFAULT = eStartFromStart,
62 constexpr AppendFlag eStartFromStart = AppendFlag::eStartFromStart;
63 constexpr AppendFlag eAppend = AppendFlag::eAppend;
65 enum class BufferFlag {
71 constexpr BufferFlag eBuffered = BufferFlag::eBuffered;
72 constexpr BufferFlag eUnbuffered = BufferFlag::eUnbuffered;
76 constexpr BufferFlag kBufferFlag_DEFAULT = BufferFlag::eBuffered;
79 constexpr SeekableFlag eSeekable = SeekableFlag::eSeekable;
80 constexpr SeekableFlag eNotSeekable = SeekableFlag::eNotSeekable;
81 constexpr SeekableFlag kSeekableFlag_DEFAULT = SeekableFlag::eNotSeekable;
119 Ptr New (
const filesystem::path& fileName,
FlushFlag flushFlag = FlushFlag::eDEFAULT);
120 Ptr New (
const filesystem::path& fileName,
AppendFlag appendFlag,
FlushFlag flushFlag = FlushFlag::eDEFAULT);
121 Ptr New (FileDescriptorType fd, AdoptFDPolicy adoptFDPolicy,
SeekableFlag seekableFlag = kSeekableFlag_DEFAULT,
122 FlushFlag flushFlag = FlushFlag::eDEFAULT);
125 FlushFlag flushFlag = FlushFlag::eDEFAULT);
128 Ptr New (
const filesystem::path& fileName,
FlushFlag flushFlag, BufferFlag bufferedFlag);
129 Ptr New (
const filesystem::path& fileName,
AppendFlag appendFlag,
FlushFlag flushFlag, BufferFlag bufferedFlag);
130 Ptr New (FileDescriptorType fd, AdoptFDPolicy adoptFDPolicy,
SeekableFlag seekableFlag,
FlushFlag flushFlag, BufferFlag bufferedFlag);
139#include "FileOutputStream.inl"
#define Stroika_Define_Enum_Bounds(FIRST_ITEM, LAST_ITEM)
OutputStream<>::Ptr is Smart pointer to a stream-based sink of data.
A Streams::Ptr<ELEMENT_TYPE> is a smart-pointer to a stream of elements of type T.