00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00026 #ifndef __PICINFO_EXIF_FILE_HEADER_INCLUDED__
00027 #define __PICINFO_EXIF_FILE_HEADER_INCLUDED__
00028
00029 #ifndef __PICINFO_IEXIF_FILE_HEADER_INCLUDED__
00030 #include "IExifFile.hpp"
00031 #endif
00032
00033 #ifndef __PICINFO_STDIO_FILE_HEADER_INCLUDED__
00034 #include "StdioFile.hpp"
00035 #endif
00036
00037 #include <memory>
00038 #include <string>
00039
00040 namespace picinfo {
00041
00048 class CExifFile : public IExifFile
00049 {
00050 private :
00052 CStdioFile m_file ;
00053
00055 std::auto_ptr<IExifFile> m_real ;
00056
00057 public :
00058 CExifFile( const std::string& filename ) ;
00059 ~CExifFile( ) ;
00060
00061 iterator find( uint16_t tag,
00062 const TagSpace& tspace = exif_tspace ) const ;
00063
00064 iterator begin( ) const ;
00065 iterator end( ) const ;
00066
00067 private :
00068 void SkipApp0( unsigned char *head ) ;
00069 void CheckApp1( ) ;
00070 } ;
00071
00072 }
00073
00074 #endif