Go to the documentation of this file.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
00028
00029
00030
00031
00032
00033 #ifndef S_BESCatalogUtils_h
00034 #define S_BESCatalogUtils_h 1
00035
00036 #include <map>
00037 #include <vector>
00038 #include <list>
00039 #include <string>
00040
00041 using std::map ;
00042 using std::vector ;
00043 using std::list ;
00044 using std::string ;
00045
00046 #include "BESObj.h"
00047 #include "BESUtil.h"
00048
00049 class BESCatalogUtils : public BESObj
00050 {
00051 private:
00052 static map<string, BESCatalogUtils *> _instances ;
00053
00054 string _root_dir ;
00055 list<string> _exclude ;
00056 list<string> _include ;
00057 bool _follow_syms ;
00058
00059 public:
00060 struct type_reg
00061 {
00062 string type ;
00063 string reg ;
00064 } ;
00065
00066 private:
00067 vector< type_reg > _match_list ;
00068
00069 BESCatalogUtils() {}
00070 public:
00071 BESCatalogUtils( const string &name ) ;
00072 virtual ~BESCatalogUtils() {}
00073 const string & get_root_dir() const { return _root_dir ; }
00074 bool follow_sym_links() const { return _follow_syms ; }
00075 virtual bool include( const string &inQuestion ) const ;
00076 virtual bool exclude( const string &inQuestion ) const ;
00077
00078 typedef vector< type_reg >::const_iterator match_citer ;
00079 BESCatalogUtils::match_citer match_list_begin() const ;
00080 BESCatalogUtils::match_citer match_list_end() const ;
00081
00082 virtual void dump( ostream &strm ) const ;
00083
00084 static const BESCatalogUtils *Utils( const string &name ) ;
00085 } ;
00086
00087 #endif // S_BESCatalogUtils_h
00088