VTK  9.3.20240419
vtkBase64OutputStream.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
11 #ifndef vtkBase64OutputStream_h
12 #define vtkBase64OutputStream_h
13 
14 #include "vtkIOCoreModule.h" // For export macro
15 #include "vtkOutputStream.h"
16 
17 VTK_ABI_NAMESPACE_BEGIN
18 class VTKIOCORE_EXPORT vtkBase64OutputStream : public vtkOutputStream
19 {
20 public:
23  void PrintSelf(ostream& os, vtkIndent indent) override;
24 
30  int StartWriting() override;
31 
35  int Write(void const* data, size_t length) override;
36 
43  int EndWriting() override;
44 
45 protected:
48 
49  // Number of un-encoded bytes left in Buffer from last call to Write.
50  unsigned int BufferLength;
51  unsigned char Buffer[2];
52 
53  // Methods to encode and write data.
54  int EncodeTriplet(unsigned char c0, unsigned char c1, unsigned char c2);
55  int EncodeEnding(unsigned char c0, unsigned char c1);
56  int EncodeEnding(unsigned char c0);
57 
58 private:
60  void operator=(const vtkBase64OutputStream&) = delete;
61 };
62 
63 VTK_ABI_NAMESPACE_END
64 #endif
Writes base64-encoded output to a stream.
int StartWriting() override
Called after the stream position has been set by the caller, but before any Write calls.
int Write(void const *data, size_t length) override
Write output data of the given length.
static vtkBase64OutputStream * New()
~vtkBase64OutputStream() override
int EndWriting() override
Called after all desired calls to Write have been made.
int EncodeEnding(unsigned char c0, unsigned char c1)
int EncodeEnding(unsigned char c0)
int EncodeTriplet(unsigned char c0, unsigned char c1, unsigned char c2)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
a simple class to control print indentation
Definition: vtkIndent.h:108
Wraps a binary output stream with a VTK interface.
@ length
Definition: vtkX3D.h:393
@ data
Definition: vtkX3D.h:315