ML Reference
MeVis/Foundation/Sources/MLUtilities/mlImagePropertyExtension.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //-------------------------------------------------------------------------
00007 
00012 //-------------------------------------------------------------------------
00013 #ifndef __mlImagePropertyExtension_H
00014 #define __mlImagePropertyExtension_H
00015 
00016 // mlUtils-includes
00017 #ifndef __mlRuntimeSubClass_H
00018 #include "mlRuntimeSubClass.h"
00019 #endif
00020 
00021 ML_UTILS_START_NAMESPACE
00022 
00023 //-------------------------------------------------------------------
00025 
00026 //-------------------------------------------------------------------
00029 class ML_UTILS_EXPORT ImagePropertyExtension {
00030 
00031 public:
00032 
00034   ImagePropertyExtension()
00035   {
00036     ML_TRACE_IN_TIME_CRITICAL("ImagePropertyExtension::ImagePropertyExtension()");
00037   }
00038 
00040   virtual ~ImagePropertyExtension()
00041   {
00042     ML_TRACE_IN_TIME_CRITICAL("ImagePropertyExtension::~ImagePropertyExtension()");
00043   }
00044 
00049   virtual bool equals(const ImagePropertyExtension &extImageProps) const = 0;
00050 
00051 
00056   virtual ImagePropertyExtension *createClone       () const = 0;
00057 
00058 
00062   virtual std::string             getValueAsString  () const = 0;
00063 
00066   virtual MLErrorCode             setValueFromString(const std::string& stringValue) = 0;
00067 
00068 
00070   virtual bool operator==(const ImagePropertyExtension &extImageProps) const;
00071 
00073   virtual bool operator!=(const ImagePropertyExtension &extImageProps) const;
00074 
00075 
00078   ML_ABSTRACT_CLASS_HEADER(ImagePropertyExtension)
00079 
00080 private:
00082   ImagePropertyExtension& operator=(const ImagePropertyExtension&);
00083 };
00085 
00086 //-------------------------------------------------------------------
00088 //-------------------------------------------------------------------
00089 typedef std::vector<ImagePropertyExtension*> ImagePropertyExtensionVector;
00090 
00091 
00092 ML_UTILS_END_NAMESPACE
00093 
00094 
00095 //-----------------------------------------------------------------------------------
00096 //   Stream output for std::ostream
00097 //-----------------------------------------------------------------------------------
00098 namespace std {
00099 
00101   ML_UTILS_EXPORT ostream& operator<<(ostream& s, const ML_NAMESPACE::ImagePropertyExtension &extIP);
00102 }
00103 
00104 #endif //of  __mlImagePropertyExtension_H
00105 
00106 
00107