00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _OPENRAW_INTERNALS_IFDENTRY_H
00023 #define _OPENRAW_INTERNALS_IFDENTRY_H
00024
00025 #include <boost/shared_ptr.hpp>
00026 #include <libopenraw/types.h>
00027
00028 #include "exception.h"
00029
00030 namespace OpenRaw {
00031 namespace Internals {
00032
00033 class IFDFileContainer;
00034
00035 class IFDEntry
00036 {
00037 public:
00039 typedef boost::shared_ptr<IFDEntry> Ref;
00040
00041 IFDEntry(int16_t _id, int16_t _type, int32_t _count, uint32_t _data,
00042 IFDFileContainer &_container);
00043 virtual ~IFDEntry();
00044
00045 int16_t type() const
00046 {
00047 return m_type;
00048 }
00049
00050 uint32_t getLong() throw (BadTypeException, TooBigException);
00051 uint16_t getShort() throw (BadTypeException, TooBigException);
00052 private:
00053 int16_t m_id;
00054 int16_t m_type;
00055 int32_t m_count;
00056 uint32_t m_data;
00057 IFDFileContainer & m_container;
00058 };
00059
00060
00061 }
00062 }
00063
00064
00065 #endif
00066
00067