ITK  6.0.0
Insight Toolkit
itkOutputWindow.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18/*=========================================================================
19 *
20 * Portions of this file are subject to the VTK Toolkit Version 3 copyright.
21 *
22 * Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
23 *
24 * For complete copyright, license and disclaimer of warranty information
25 * please refer to the NOTICE file at the top of the ITK source tree.
26 *
27 *=========================================================================*/
28#ifndef itkOutputWindow_h
29#define itkOutputWindow_h
30
31#include <atomic>
32#include <mutex>
33#include "itkObject.h"
34
35namespace itk
36{
37
38
39struct OutputWindowGlobals;
40
50class ITKCommon_EXPORT OutputWindow : public Object
51{
52public:
53 ITK_DISALLOW_COPY_AND_MOVE(OutputWindow);
54
60
62 itkOverrideGetNameOfClassMacro(OutputWindow);
63
69 static Pointer
70 New();
71
73 static Pointer
75
78 static void
80
82 virtual void
83 DisplayText(const char *);
84
88 virtual void
89 DisplayErrorText(const char * t)
90 {
91 this->DisplayText(t);
92 }
93
97 virtual void
98 DisplayWarningText(const char * t)
99 {
100 this->DisplayText(t);
101 }
102
106 virtual void
108 {
109 this->DisplayText(t);
110 }
111
115 virtual void
116 DisplayDebugText(const char * t)
117 {
118 this->DisplayText(t);
119 }
120
124 itkSetMacro(PromptUser, bool);
125 itkGetConstMacro(PromptUser, bool);
126 itkBooleanMacro(PromptUser);
129protected:
131 ~OutputWindow() override;
132 void
133 PrintSelf(std::ostream & os, Indent indent) const override;
134
135private:
136 itkGetGlobalDeclarationMacro(OutputWindowGlobals, PimplGlobals);
137
138 std::atomic<bool> m_PromptUser{};
139 std::mutex m_cerrMutex{};
140 static OutputWindowGlobals * m_PimplGlobals;
141};
142} // end namespace itk
143
144#endif
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Light weight base class for most itk classes.
Base class for most ITK classes.
Definition: itkObject.h:62
Messages sent from the system are collected by this object.
static void SetInstance(OutputWindow *instance)
virtual void DisplayText(const char *)
static OutputWindowGlobals * m_PimplGlobals
~OutputWindow() override
virtual void DisplayGenericOutputText(const char *t)
virtual void DisplayWarningText(const char *t)
virtual void DisplayErrorText(const char *t)
static Pointer GetInstance()
static Pointer New()
virtual void DisplayDebugText(const char *t)
void PrintSelf(std::ostream &os, Indent indent) const override
itkGetGlobalDeclarationMacro(OutputWindowGlobals, PimplGlobals)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....