00001 #pragma once
00002
00027 #ifndef __FILEINFO_H__
00028 #define __FILEINFO_H__
00029
00030
00031 #include "id.h"
00032 #include "md5.h"
00033
00034
00035 using std::string;
00036 using std::streamsize;
00037 using std::streamoff;
00038
00040 class fileinfo
00041 {
00042
00043 public:
00044 fileinfo(const string& FileName);
00045 virtual ~fileinfo(void);
00046 string GetFileName(void) const;
00047 virtual void Show(void) const;
00048 string ParseID(const string& IDName) const;
00049 void GenerateInfo(void);
00050 protected:
00051 virtual void FirstStep(void);
00052 virtual streamoff Step(char* pContent, streamsize ContentSize, streamoff FileOffset);
00053 virtual void LastStep(void);
00054
00055
00056 protected:
00057 id* m_pIDs;
00058 const string m_FileName;
00059 streamsize m_FileSize;
00060 private:
00061 streamoff m_LastOffset;
00062 md5* m_pMD5;
00063 };
00064
00065 #endif // __FILEINFO_H__