VTK  9.3.1
vtkTextCodec.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright 2008 Sandia Corporation
3 // SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
21 #ifndef vtkTextCodec_h
22 #define vtkTextCodec_h
23 
24 #include "vtkIOCoreModule.h" // For export macro
25 #include "vtkObject.h"
26 
27 VTK_ABI_NAMESPACE_BEGIN
28 class VTKIOCORE_EXPORT vtkTextCodec : public vtkObject
29 {
30 public:
31  vtkTypeMacro(vtkTextCodec, vtkObject);
32 
34 
38  virtual const char* Name();
39  void PrintSelf(ostream& os, vtkIndent indent) override;
41 
42  virtual bool CanHandle(const char* NameString);
43 
47  virtual bool IsValid(istream& InputStream);
48 
50 
57  {
58  public:
59  virtual OutputIterator& operator++(int) { return *this; }
60  virtual OutputIterator& operator*() { return *this; }
61  virtual OutputIterator& operator=(const vtkTypeUInt32& value) = 0;
62 
63  OutputIterator() = default;
64  virtual ~OutputIterator() = default;
65 
66  private:
67  OutputIterator(const OutputIterator&) = delete;
68  OutputIterator& operator=(const OutputIterator&) = delete;
69  };
71 
77  virtual void ToUnicode(istream& inputStream, vtkTextCodec::OutputIterator& output);
78 
83  std::string ToString(istream& inputStream);
84 
90  virtual vtkTypeUInt32 NextUTF32CodePoint(istream& inputStream) = 0;
91 
92 protected:
93  vtkTextCodec();
94  ~vtkTextCodec() override;
95 
96 private:
97  vtkTextCodec(const vtkTextCodec&) = delete;
98  void operator=(const vtkTextCodec&) = delete;
99 };
100 
101 VTK_ABI_NAMESPACE_END
102 #endif
a base class that any output iterators need to derive from to use the first signature of to_unicode...
Definition: vtkTextCodec.h:56
abstract base class for most VTK objects
Definition: vtkObject.h:51
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
Virtual class to act as an interface for all text codecs.
Definition: vtkTextCodec.h:28
virtual OutputIterator & operator*()
Definition: vtkTextCodec.h:60
a simple class to control print indentation
Definition: vtkIndent.h:28
virtual OutputIterator & operator++(int)
Definition: vtkTextCodec.h:59