ITK  6.0.0
Insight Toolkit
itkMetaDataObjectBase.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 itkMetaDataObjectBase_h
29#define itkMetaDataObjectBase_h
30
31#include "itkLightObject.h"
32#include <typeinfo>
33#include <iostream>
34
35namespace itk
36{
47class ITKCommon_EXPORT MetaDataObjectBase : public LightObject
48{
49public:
50 ITK_DISALLOW_COPY_AND_MOVE(MetaDataObjectBase);
51
57
59 itkOverrideGetNameOfClassMacro(MetaDataObjectBase);
60
65 virtual const char *
67
72 virtual const std::type_info &
74
76 friend bool
77 operator==(const Self & lhs, const Self & rhs)
78 {
79 return lhs.Equal(rhs);
80 }
81
83 friend bool
84 operator!=(const Self & lhs, const Self & rhs)
85 {
86 return !(lhs == rhs);
87 }
88
89
94 virtual void
95 Print(std::ostream & os) const;
96
97protected:
100
101private:
102 virtual bool
103 Equal(const MetaDataObjectBase &) const = 0;
104};
105} // namespace itk
106
107#endif // itkMetaDataObjectBase_h
Light weight base class for most itk classes.
The common interface for MetaDataObject's.
friend bool operator==(const Self &lhs, const Self &rhs)
virtual const char * GetMetaDataObjectTypeName() const
virtual const std::type_info & GetMetaDataObjectTypeInfo() const
~MetaDataObjectBase() override
virtual void Print(std::ostream &os) const
friend bool operator!=(const Self &lhs, const Self &rhs)
virtual bool Equal(const MetaDataObjectBase &) const =0
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....