00001 00021 #ifndef OBJECT_DATABASE_CATEGORY_H_ 00022 #define OBJECT_DATABASE_CATEGORY_H_ 00023 00024 00025 #include <boost/filesystem.hpp> 00026 #include <string> 00027 #include "typedef.h" 00028 #include "ObjectDatabaseEntry.h" 00029 #include "asr_object_database/ConfigurationXMLSchema.h" 00030 00031 namespace object_database 00032 { 00033 using namespace asr_object_database; 00034 00035 namespace fs = boost::filesystem; 00039 struct FileType 00040 { 00041 enum Value 00042 { 00043 FILE, 00044 DIRECTORY 00045 }; 00046 }; 00047 00051 class ObjectDatabaseRecognizer 00052 { 00056 database mDatabase; 00057 00061 bool mRead; 00062 00066 ObjectDatabaseEntryPtrMap mEntries; 00067 public: 00071 ObjectDatabaseRecognizer(database db); 00072 00076 virtual ~ObjectDatabaseRecognizer() 00077 {} 00078 00082 const std::string getKeyword(); 00083 00087 void setKeyword(const std::string kw); 00088 00092 const fs::path getPath(); 00093 00097 void setPath(const fs::path pt); 00098 00102 const std::string getRegexp(); 00103 00107 void setRegexp(const std::string regexp); 00108 00112 bool isRead(); 00113 00114 private: 00118 void setRead(bool rd); 00119 00120 public: 00124 void readEntries(); 00125 00129 ObjectDatabaseEntryPtrMap getEntries(); 00130 00135 const ObjectDatabaseEntryPtr& getEntry(const std::string objectName); 00136 }; 00137 } 00138 00139 #endif // OBJECT_DATABASE_CATEGORY_H_