00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef __NEFILETYPE_H
00028 #define __NEFILETYPE_H
00029
00030
00037 #ifndef __NEED_VECTOR_STRING
00038 # define __NEED_VECTOR_STRING
00039 #endif
00040
00041 #include "base.h"
00042
00043 #include <vector>
00044 #include <string>
00045
00046
00047 namespace NeoEngine
00048 {
00049
00050
00051
00052 class File;
00053
00054
00060 class NEOENGINE_API FiletypeIdentifier
00061 {
00062 protected:
00063
00065 std::string m_strTypeName;
00066
00068 std::vector< std::string > m_vstrExtensions;
00069
00070
00071 public:
00072
00077 FiletypeIdentifier( const std::string &rstrFiletypeName, const std::vector< std::string > &rvstrExtensions );
00078
00082 FiletypeIdentifier( const std::string &rstrFiletypeName );
00083
00086 virtual ~FiletypeIdentifier();
00087
00093 virtual bool IsType( File *pkFile ) = 0;
00094
00098 const std::string &GetTypeName() const;
00099
00103 const std::vector< std::string > &GetExtensions() const;
00104 };
00105
00106
00107 };
00108
00109
00110 #endif