1*cdf0e10cSrcweir #ifndef COLLECTDIRCONTENT_H 2*cdf0e10cSrcweir #define COLLECTDIRCONTENT_H 3*cdf0e10cSrcweir 4*cdf0e10cSrcweir #if defined __cplusplus 5*cdf0e10cSrcweir 6*cdf0e10cSrcweir #include <set> 7*cdf0e10cSrcweir #include <map> 8*cdf0e10cSrcweir #include <string> 9*cdf0e10cSrcweir 10*cdf0e10cSrcweir #if defined( WNT ) 11*cdf0e10cSrcweir #include <windows.h> 12*cdf0e10cSrcweir #include <algorithm> 13*cdf0e10cSrcweir #else 14*cdf0e10cSrcweir #include <dirent.h> 15*cdf0e10cSrcweir #endif // defined( WNT ) 16*cdf0e10cSrcweir 17*cdf0e10cSrcweir #include <iostream> 18*cdf0e10cSrcweir 19*cdf0e10cSrcweir using namespace std; 20*cdf0e10cSrcweir 21*cdf0e10cSrcweir typedef set<string> DirContent; 22*cdf0e10cSrcweir typedef map<string, DirContent> DirMap; 23*cdf0e10cSrcweir typedef DirMap::value_type EntriesPair; 24*cdf0e10cSrcweir typedef pair<string, string> PathFilePair; 25*cdf0e10cSrcweir 26*cdf0e10cSrcweir 27*cdf0e10cSrcweir struct IncludesCollection { 28*cdf0e10cSrcweir private: 29*cdf0e10cSrcweir DirMap allIncludes; 30*cdf0e10cSrcweir // bool search(string filePath); 31*cdf0e10cSrcweir // bool add_dir(string dirPath); 32*cdf0e10cSrcweir PathFilePair split_path(const string& filePath); 33*cdf0e10cSrcweir void add_to_collection(const string& dirPath); 34*cdf0e10cSrcweir 35*cdf0e10cSrcweir public: 36*cdf0e10cSrcweir bool exists(string filePath); 37*cdf0e10cSrcweir }; 38*cdf0e10cSrcweir 39*cdf0e10cSrcweir #else 40*cdf0e10cSrcweir 41*cdf0e10cSrcweir struct IncludesCollection; 42*cdf0e10cSrcweir 43*cdf0e10cSrcweir #endif 44*cdf0e10cSrcweir 45*cdf0e10cSrcweir #if defined __cplusplus 46*cdf0e10cSrcweir extern "C" { 47*cdf0e10cSrcweir #endif 48*cdf0e10cSrcweir 49*cdf0e10cSrcweir struct IncludesCollection * create_IncludesCollection(void); 50*cdf0e10cSrcweir void delete_IncludesCollection(struct IncludesCollection *); 51*cdf0e10cSrcweir 52*cdf0e10cSrcweir int call_IncludesCollection_exists(struct IncludesCollection* m, const char* filePath); 53*cdf0e10cSrcweir 54*cdf0e10cSrcweir #if defined __cplusplus 55*cdf0e10cSrcweir } 56*cdf0e10cSrcweir #endif 57*cdf0e10cSrcweir 58*cdf0e10cSrcweir #endif // COLLECTDIRCONTENT_H 59