VTK  9.3.20231202
vtkOutputWindow.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
38 #ifndef vtkOutputWindow_h
39 #define vtkOutputWindow_h
40 
41 #include "vtkCommonCoreModule.h" // For export macro
42 #include "vtkDebugLeaksManager.h" // Must be included before singletons
43 #include "vtkDeprecation.h" // For `VTK_DEPRECATED_IN_9_3_0`
44 #include "vtkObject.h"
45 
46 VTK_ABI_NAMESPACE_BEGIN
48  "`vtkOutputWindowCleanup` is no longer necessary") VTKCOMMONCORE_EXPORT vtkOutputWindowCleanup
49 {
50 public:
53 
54 private:
55  vtkOutputWindowCleanup(const vtkOutputWindowCleanup& other) = delete;
56  vtkOutputWindowCleanup& operator=(const vtkOutputWindowCleanup& rhs) = delete;
57 };
58 
59 class vtkOutputWindowPrivateAccessor;
60 class VTKCOMMONCORE_EXPORT vtkOutputWindow : public vtkObject
61 {
62 public:
63  // Methods from vtkObject
64  vtkTypeMacro(vtkOutputWindow, vtkObject);
68  void PrintSelf(ostream& os, vtkIndent indent) override;
69 
75  static vtkOutputWindow* New();
76 
85  static void SetInstance(vtkOutputWindow* instance);
86 
88 
95  virtual void DisplayText(const char*);
96  virtual void DisplayErrorText(const char*);
97  virtual void DisplayWarningText(const char*);
98  virtual void DisplayGenericWarningText(const char*);
99  virtual void DisplayDebugText(const char*);
101 
103 
112  vtkBooleanMacro(PromptUser, bool);
113  vtkSetMacro(PromptUser, bool);
115 
117 
142  {
143  DEFAULT = -1,
144  NEVER = 0,
145  ALWAYS = 1,
146  ALWAYS_STDERR = 2
147  };
148  vtkSetClampMacro(DisplayMode, int, DEFAULT, ALWAYS_STDERR);
149  vtkGetMacro(DisplayMode, int);
150  void SetDisplayModeToDefault() { this->SetDisplayMode(vtkOutputWindow::DEFAULT); }
151  void SetDisplayModeToNever() { this->SetDisplayMode(vtkOutputWindow::NEVER); }
152  void SetDisplayModeToAlways() { this->SetDisplayMode(vtkOutputWindow::ALWAYS); }
155 protected:
157  ~vtkOutputWindow() override;
158 
160  {
165  MESSAGE_TYPE_DEBUG
166  };
167 
173  vtkGetMacro(CurrentMessageType, MessageTypes);
174 
175  enum class StreamType
176  {
177  Null,
178  StdOutput,
179  StdError,
180  };
181 
186  virtual StreamType GetDisplayStream(MessageTypes msgType) const;
187 
189 
190 private:
191  std::atomic<MessageTypes> CurrentMessageType;
192  int DisplayMode;
193  std::atomic<int> InStandardMacros; // used to suppress display to output streams from standard
194  // macros when logging is enabled.
195 
196  friend class vtkOutputWindowPrivateAccessor;
197 
198  vtkOutputWindow(const vtkOutputWindow&) = delete;
199  void operator=(const vtkOutputWindow&) = delete;
200 };
201 
202 VTK_ABI_NAMESPACE_END
203 #endif
a simple class to control print indentation
Definition: vtkIndent.h:108
abstract base class for most VTK objects
Definition: vtkObject.h:161
vtkOutputWindowCleanup()=default
~vtkOutputWindowCleanup()=default
base class for writing debug output to a console
virtual void DisplayGenericWarningText(const char *)
Display the text.
void SetDisplayModeToAlways()
Flag indicates how the vtkOutputWindow handles displaying of text to stderr / stdout.
void SetDisplayModeToNever()
Flag indicates how the vtkOutputWindow handles displaying of text to stderr / stdout.
virtual StreamType GetDisplayStream(MessageTypes msgType) const
Returns the standard output stream to post the message of the given type on.
void SetDisplayModeToAlwaysStdErr()
Flag indicates how the vtkOutputWindow handles displaying of text to stderr / stdout.
DisplayModes
Flag indicates how the vtkOutputWindow handles displaying of text to stderr / stdout.
void PrintSelf(ostream &os, vtkIndent indent) override
Print ObjectFactor to stream.
static vtkOutputWindow * New()
Creates a new instance of vtkOutputWindow.
static vtkOutputWindow * GetInstance()
Return the singleton instance with no reference counting.
void SetDisplayModeToDefault()
Flag indicates how the vtkOutputWindow handles displaying of text to stderr / stdout.
~vtkOutputWindow() override
virtual void DisplayDebugText(const char *)
Display the text.
static void SetInstance(vtkOutputWindow *instance)
Supply a user defined output window.
virtual void DisplayWarningText(const char *)
Display the text.
virtual void DisplayText(const char *)
Display the text.
virtual void DisplayErrorText(const char *)
Display the text.
#define VTK_DEPRECATED_IN_9_3_0(reason)