VTK
vtkBase64InputStream.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkBase64InputStream.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
23 #ifndef vtkBase64InputStream_h
24 #define vtkBase64InputStream_h
25 
26 #include "vtkIOCoreModule.h" // For export macro
27 #include "vtkInputStream.h"
28 
29 class VTKIOCORE_EXPORT vtkBase64InputStream : public vtkInputStream
30 {
31 public:
33  static vtkBase64InputStream *New();
34  void PrintSelf(ostream& os, vtkIndent indent);
35 
41  void StartReading();
42 
47  int Seek(vtkTypeInt64 offset);
48 
53  size_t Read(void* data, size_t length);
54 
61  void EndReading();
62 
63 protected:
66 
67  // Number of decoded bytes left in Buffer from last call to Read.
69  unsigned char Buffer[2];
70 
71  // Reads 4 bytes from the input stream and decodes them into 3 bytes.
72  int DecodeTriplet(unsigned char& c0, unsigned char& c1, unsigned char& c2);
73 
74 private:
75  vtkBase64InputStream(const vtkBase64InputStream&) VTK_DELETE_FUNCTION;
76  void operator=(const vtkBase64InputStream&) VTK_DELETE_FUNCTION;
77 };
78 
79 #endif
Reads base64-encoded input from a stream.
virtual void EndReading()
Called after all desired calls to Seek and Read have been made.
virtual void StartReading()
Called after the stream position has been set by the caller, but before any Seek or Read calls...
Wraps a binary input stream with a VTK interface.
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
static vtkInputStream * New()
a simple class to control print indentation
Definition: vtkIndent.h:39
virtual size_t Read(void *data, size_t length)
Read input data of the given length.
virtual int Seek(vtkTypeInt64 offset)
Seek to the given offset in the input data.