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