LMMS
Loading...
Searching...
No Matches
juce_FileOutputStream.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 The code included in this file is provided under the terms of the ISC license
11 http://www.isc.org/downloads/software-support-policy/isc-license. Permission
12 To use, copy, modify, and/or distribute this software for any purpose with or
13 without fee is hereby granted provided that the above copyright notice and
14 this permission notice appear in all copies.
15
16 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
17 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
18 DISCLAIMED.
19
20 ==============================================================================
21*/
22
23namespace juce
24{
25
26//==============================================================================
35{
36public:
37 //==============================================================================
66 FileOutputStream (const File& fileToWriteTo,
67 size_t bufferSizeToUse = 16384);
68
70 ~FileOutputStream() override;
71
72 //==============================================================================
75 const File& getFile() const { return file; }
76
81 const Result& getStatus() const noexcept { return status; }
82
86 bool failedToOpen() const noexcept { return status.failed(); }
87
91 bool openedOk() const noexcept { return status.wasOk(); }
92
97 Result truncate();
98
99 //==============================================================================
100 void flush() override;
101 int64 getPosition() override;
102 bool setPosition (int64) override;
103 bool write (const void*, size_t) override;
104 bool writeRepeatedByte (uint8 byte, size_t numTimesToRepeat) override;
105
106
107private:
108 //==============================================================================
110 void* fileHandle = nullptr;
115
116 void openHandle();
117 void closeHandle();
118 void flushInternal();
119 bool flushBuffer();
121 ssize_t writeInternal (const void*, size_t);
122
124};
125
126} // namespace juce
#define noexcept
Definition DistrhoDefines.h:72
static Result ok() noexcept
Definition Result.h:68
Definition juce_File.h:45
ssize_t writeInternal(const void *, size_t)
Definition juce_posix_SharedCode.h:519
const Result & getStatus() const noexcept
Definition juce_FileOutputStream.h:81
File file
Definition juce_FileOutputStream.h:109
int64 currentPosition
Definition juce_FileOutputStream.h:112
void openHandle()
Definition juce_posix_SharedCode.h:474
bool flushBuffer()
Definition juce_FileOutputStream.cpp:57
const File & getFile() const
Definition juce_FileOutputStream.h:75
void flushInternal()
Definition juce_posix_SharedCode.h:533
HeapBlock< char > buffer
Definition juce_FileOutputStream.h:114
size_t bufferSize
Definition juce_FileOutputStream.h:113
bool failedToOpen() const noexcept
Definition juce_FileOutputStream.h:86
void * fileHandle
Definition juce_FileOutputStream.h:110
Result status
Definition juce_FileOutputStream.h:111
int64 setPositionInternal(int64)
bool openedOk() const noexcept
Definition juce_FileOutputStream.h:91
void closeHandle()
Definition juce_posix_SharedCode.h:510
size_t bytesInBuffer
Definition juce_FileOutputStream.h:113
FileOutputStream(const File &fileToWriteTo, size_t bufferSizeToUse=16384)
Definition juce_FileOutputStream.cpp:27
Definition juce_HeapBlock.h:87
OutputStream()
Definition juce_OutputStream.cpp:59
Definition juce_Result.h:57
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
#define JUCE_API
Definition juce_StandardHeader.h:152
Definition carla_juce.cpp:31
long long int64
Definition juce_MathsFunctions.h:54
unsigned char uint8
Definition juce_MathsFunctions.h:37
int flush(__G__ rawbuf, size, unshrink) __GDEF uch *rawbuf
#define const
Definition zconf.h:137