00001 /* 00002 * Copyright (c) 2000, University of Amsterdam, The Netherlands. 00003 * All rights reserved. 00004 * 00005 * Author(s): 00006 * Edo Poll (poll@wins.uva.nl) 00007 * Dennis Koelma (koelma@wins.uva.nl) 00008 */ 00009 00010 #ifndef HxImgFtorDescription_h 00011 #define HxImgFtorDescription_h 00012 00013 #include "HxStd.h" 00014 #include "HxIoFwd.h" 00015 #include "HxString.h" 00016 #include "HxSizes.h" 00017 #include "HxImgFtorKey.h" 00018 #include "HxTagList.h" 00019 #include "HxLogMessage.h" 00020 00021 class HxImageSignature; 00022 class HxIfdArg; 00023 00024 00027 class L_HXIMAGEREP HxImgFtorDescription : public HxLogMessage 00028 { 00029 public: 00030 HxImgFtorDescription(); 00031 HxImgFtorDescription(const HxImgFtorDescription&); 00032 HxImgFtorDescription& operator=(const HxImgFtorDescription&); 00033 ~HxImgFtorDescription(); 00034 00035 void setKey(const HxImgFtorKey& key); 00036 void addArgument(const HxImageSignature&, HxSizes size); 00037 void setVariation(HxString); 00038 void setTags(const HxTagList& tags); 00039 00040 virtual HxString toString() const; 00041 00042 virtual STD_OSTREAM& put(STD_OSTREAM&) const; 00043 00044 bool operator<(const HxImgFtorDescription&) const; 00045 bool operator==(const HxImgFtorDescription&) const; 00046 bool operator!=(const HxImgFtorDescription&) const; 00047 00048 private: 00049 HxImgFtorKey _key; 00050 HxIfdArg* _argList; 00051 HxString _variation; 00052 HxTagList _tags; 00053 }; 00054 00055 inline STD_OSTREAM& 00056 operator<<(STD_OSTREAM& os, const HxImgFtorDescription& ifd) 00057 { 00058 return ifd.put(os); 00059 } 00060 00061 inline bool 00062 HxImgFtorDescription::operator !=(const HxImgFtorDescription& rhs) const 00063 { 00064 return !operator==(rhs); 00065 } 00066 00067 inline void 00068 HxImgFtorDescription::setKey(const HxImgFtorKey& key) 00069 { 00070 _key = key; 00071 } 00072 00073 inline void 00074 HxImgFtorDescription::setVariation(HxString v) 00075 { 00076 _variation = v; 00077 } 00078 00079 inline void 00080 HxImgFtorDescription::setTags(const HxTagList& tags) 00081 { 00082 _tags = tags; 00083 } 00084 00085 #endif