18#ifndef itkLoggerThreadWrapper_h
19#define itkLoggerThreadWrapper_h
28#include "ITKCommonExport.h"
47 SET_LEVEL_FOR_FLUSHING,
53extern ITKCommon_EXPORT std::ostream &
67template <
typename SimpleLoggerType>
82 using OutputType =
typename SimpleLoggerType::OutputType;
88#if !defined(ITK_LEGACY_REMOVE)
91 static constexpr OperationEnum SET_PRIORITY_LEVEL = OperationEnum::SET_PRIORITY_LEVEL;
92 static constexpr OperationEnum SET_LEVEL_FOR_FLUSHING = OperationEnum::SET_LEVEL_FOR_FLUSHING;
93 static constexpr OperationEnum ADD_LOG_OUTPUT = OperationEnum::ADD_LOG_OUTPUT;
155 std::thread m_Thread{};
157 std::atomic<bool> m_TerminationRequested{};
159 std::queue<OperationEnum> m_OperationQ{};
161 std::queue<std::string> m_MessageQ{};
163 std::queue<PriorityLevelEnum> m_LevelQ{};
165 std::queue<typename OutputType::Pointer> m_OutputQ{};
167 mutable std::mutex m_Mutex{};
175#ifndef ITK_MANUAL_INSTANTIATION
176# include "itkLoggerThreadWrapper.hxx"
Control indentation during Print() invocation.
enums for LoggerThreadWrapper
Used for providing logging service as a separate thread.
typename SimpleLoggerType::OutputType OutputType
void SetLevelForFlushing(PriorityLevelEnum level) override
PriorityLevelEnum GetLevelForFlushing() const override
void PrivateFlush() override
PriorityLevelEnum GetPriorityLevel() const override
~LoggerThreadWrapper() override
virtual void SetDelay(DelayType delay)
SimpleLoggerType Superclass
void SetPriorityLevel(PriorityLevelEnum level) override
void PrintSelf(std::ostream &os, Indent indent) const override
void AddLogOutput(OutputType *output) override
void Write(PriorityLevelEnum level, std::string const &content) override
typename SimpleLoggerType::PriorityLevelEnum PriorityLevelEnum
virtual DelayType GetDelay() const
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
ITKCommon_EXPORT std::ostream & operator<<(std::ostream &out, typename AnatomicalOrientation::CoordinateEnum value)