LMMS
Loading...
Searching...
No Matches
OutputStream.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the Water library.
5 Copyright (c) 2016 ROLI Ltd.
6 Copyright (C) 2017-2022 Filipe Coelho <falktx@falktx.com>
7
8 Permission is granted to use this software under the terms of the ISC license
9 http://www.isc.org/downloads/software-support-policy/isc-license/
10
11 Permission to use, copy, modify, and/or distribute this software for any
12 purpose with or without fee is hereby granted, provided that the above
13 copyright notice and this permission notice appear in all copies.
14
15 THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD
16 TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
17 FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,
18 OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
19 USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
20 TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
21 OF THIS SOFTWARE.
22
23 ==============================================================================
24*/
25
26#ifndef WATER_OUTPUTSTREAM_H_INCLUDED
27#define WATER_OUTPUTSTREAM_H_INCLUDED
28
29#include "../water.h"
30#include "../text/String.h"
31
32namespace water {
33
34//==============================================================================
44{
45protected:
46 //==============================================================================
48
49public:
55 virtual ~OutputStream();
56
57 //==============================================================================
60 virtual void flush() = 0;
61
69 virtual bool setPosition (int64 newPosition) = 0;
70
75 virtual int64 getPosition() = 0;
76
77 //==============================================================================
88 virtual bool write (const void* dataToWrite,
89 size_t numberOfBytes) = 0;
90
91 //==============================================================================
96 virtual bool writeByte (char byte);
97
103 virtual bool writeBool (bool boolValue);
104
110 virtual bool writeShort (short value);
111
117 virtual bool writeShortBigEndian (short value);
118
123 virtual bool writeInt (int value);
124
129 virtual bool writeIntBigEndian (int value);
130
135 virtual bool writeInt64 (int64 value);
136
141 virtual bool writeInt64BigEndian (int64 value);
142
148 virtual bool writeFloat (float value);
149
155 virtual bool writeFloatBigEndian (float value);
156
162 virtual bool writeDouble (double value);
163
169 virtual bool writeDoubleBigEndian (double value);
170
174 virtual bool writeRepeatedByte (uint8 byte, size_t numTimesToRepeat);
175
187 virtual bool writeCompressedInt (int value);
188
202 virtual bool writeString (const String& text);
203
213 virtual bool writeText (const String& text,
214 bool asUTF16,
215 bool writeUTF16ByteOrderMark);
216
225 virtual int64 writeFromInputStream (InputStream& source, int64 maxNumBytesToWrite);
226
227 //==============================================================================
232
235
236private:
237 //==============================================================================
239
241};
242
243//==============================================================================
245OutputStream& operator<< (OutputStream& stream, int number);
246
249
251OutputStream& operator<< (OutputStream& stream, double number);
252
254OutputStream& operator<< (OutputStream& stream, char character);
255
257OutputStream& operator<< (OutputStream& stream, const char* text);
258
261
263OutputStream& operator<< (OutputStream& stream, const File& fileToRead);
264
266OutputStream& operator<< (OutputStream& stream, InputStream& streamToRead);
267
276
277}
278
279#endif // WATER_OUTPUTSTREAM_H_INCLUDED
#define CARLA_DECLARE_NON_COPYABLE(ClassName)
Definition CarlaDefines.h:242
#define noexcept
Definition DistrhoDefines.h:72
Definition File.h:50
Definition InputStream.h:42
Definition MemoryBlock.h:39
Definition NewLine.h:45
Definition OutputStream.h:44
const String & getNewLineString() const noexcept
Definition OutputStream.h:234
virtual bool writeString(const String &text)
Definition OutputStream.cpp:151
virtual bool writeIntBigEndian(int value)
Definition OutputStream.cpp:83
virtual bool writeBool(bool boolValue)
Definition OutputStream.cpp:45
virtual void flush()=0
virtual bool write(const void *dataToWrite, size_t numberOfBytes)=0
String newLineString
Definition OutputStream.h:238
virtual bool writeInt64(int64 value)
Definition OutputStream.cpp:111
OutputStream()
Definition OutputStream.cpp:35
virtual bool writeFloatBigEndian(float value)
Definition OutputStream.cpp:130
virtual bool writeShortBigEndian(short value)
Definition OutputStream.cpp:71
virtual ~OutputStream()
Definition OutputStream.cpp:40
virtual int64 getPosition()=0
virtual bool writeDoubleBigEndian(double value)
Definition OutputStream.cpp:144
virtual bool writeText(const String &text, bool asUTF16, bool writeUTF16ByteOrderMark)
Definition OutputStream.cpp:156
virtual bool writeByte(char byte)
Definition OutputStream.cpp:51
virtual int64 writeFromInputStream(InputStream &source, int64 maxNumBytesToWrite)
Definition OutputStream.cpp:222
virtual bool writeCompressedInt(int value)
Definition OutputStream.cpp:89
virtual bool writeInt(int value)
Definition OutputStream.cpp:77
void setNewLineString(const String &newLineString)
Definition OutputStream.cpp:247
virtual bool writeShort(short value)
Definition OutputStream.cpp:65
virtual bool setPosition(int64 newPosition)=0
virtual bool writeDouble(double value)
Definition OutputStream.cpp:137
virtual bool writeRepeatedByte(uint8 byte, size_t numTimesToRepeat)
Definition OutputStream.cpp:56
virtual bool writeFloat(float value)
Definition OutputStream.cpp:123
virtual bool writeInt64BigEndian(int64 value)
Definition OutputStream.cpp:117
Definition String.h:48
static PuglViewHint int value
Definition pugl.h:1708
JSAMPIMAGE data
Definition jpeglib.h:945
Definition AudioSampleBuffer.h:33
OutputStream & operator<<(OutputStream &stream, const MemoryOutputStream &streamToRead)
Definition MemoryOutputStream.cpp:194
long long int64
Definition water.h:100
unsigned char uint8
Definition water.h:90
const char * text
Definition swell-functions.h:167
#define const
Definition zconf.h:137