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 
16 #include <libb64/cencode.h>
17 
23 {
24 public:
30  Base64OutputStream(IDataSourceStream* stream, size_t resultSize = 500);
31 
32  size_t transform(const uint8_t* source, size_t sourceLength, uint8_t* target, size_t targetLength) override;
33 
34  void saveState() override
35  {
36  savedState = state;
37  }
38 
39  void restoreState() override
40  {
41  state = savedState;
42  }
43 
44 private:
45  base64_encodestate state{};
46  base64_encodestate savedState{};
47 };
Base class for read-only stream.
Definition: DataSourceStream.h:45
void saveState() override
A method that backs up the current state.
Definition: Base64OutputStream.h:44
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.
Class that can be used to transform streams of data on the fly.
Definition: StreamTransformer.h:21
Read-only stream to emit base64-encoded content from source stream.
Definition: Base64OutputStream.h:22
void restoreState() override
A method that restores the last backed up state.
Definition: Base64OutputStream.h:49