Base64OutputStream.h
Go to the documentation of this file.
1 /****
2  * Sming Framework Project - Open Source framework for high efficiency native ESP8266 development.
3  * Created 2015 by Skurydin Alexey
4  * http://github.com/SmingHub/Sming
5  * All files of the Sming Core are provided under the LGPL v3 license.
6  *
7  * Base64OutputStream.h
8  *
9  * @author Slavey Karadzhov <slaff@attachix.com>
10  *
11  ****/
12 
13 #pragma once
14 
15 #include "../StreamTransformer.h"
16 #include "libb64/cencode.h"
17 
26 {
27 public:
33  Base64OutputStream(IDataSourceStream* stream, size_t resultSize = 500);
34 
35  size_t transform(const uint8_t* source, size_t sourceLength, uint8_t* target, size_t targetLength) override;
36 
40  void saveState() override;
41 
45  void restoreState() override;
46 
47 private:
48  base64_encodestate state = {};
49  base64_encodestate lastState = {};
50 };
51 
Base class for data source stream.
Definition: DataSourceStream.h:39
void restoreState() override
A method that restores the last backed up state.
Definition: StreamTransformer.h:30
Base64 Stream.
Definition: Base64OutputStream.h:25
void saveState() override
A method that backs up the current state.
Base64OutputStream(IDataSourceStream *stream, size_t resultSize=500)
Stream that transforms bytes of data into base64 data stream.
size_t transform(const uint8_t *source, size_t sourceLength, uint8_t *target, size_t targetLength) override
Inherited class implements this method to transform a block of data.