1 /*========================================================================= 2 * 3 * Copyright Insight Software Consortium 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 * http://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 #ifndef itkLogOutput_h 19 #define itkLogOutput_h 20 21 #include "itkMacro.h" 22 #include "itkObject.h" 23 #include "itkObjectFactory.h" 24 25 #include <string> 26 27 namespace itk 28 { 29 /** \class LogOutput 30 * \brief Represents an output stream. 31 * 32 * \author Hee-Su Kim, Compute Science Dept. Kyungpook National University, 33 * ISIS Center, Georgetown University. 34 * 35 * \ingroup OSSystemObjects LoggingObjects 36 * \ingroup ITKCommon 37 */ 38 39 class ITKCommon_EXPORT LogOutput:public Object 40 { 41 public: 42 43 using Self = LogOutput; 44 using Superclass = Object; 45 using Pointer = SmartPointer< Self >; 46 using ConstPointer = SmartPointer< const Self >; 47 48 /** flush a buffer */ 49 virtual void Flush() = 0; 50 51 /** Write to a buffer */ 52 virtual void Write(double timestamp) = 0; 53 54 /** Write to a buffer */ 55 virtual void Write(const std::string & content) = 0; 56 57 /** Write to a buffer */ 58 virtual void Write(const std::string & content, double timestamp) = 0; 59 60 protected: 61 62 /** Destructor */ 63 LogOutput(); 64 65 /** Destructor */ 66 ~LogOutput() override; 67 }; 68 } 69 70 #endif //itkLogOutput_h 71