|  | #ifndef FILES_H | 
|  | #define FILES_H | 
|  |  | 
|  | #include <map> | 
|  | #include <string> | 
|  | #include <vector> | 
|  | #include <sys/types.h> | 
|  |  | 
|  | using namespace std; | 
|  |  | 
|  | enum FileOpType { | 
|  | FILE_OP_COPY = 0, | 
|  | FILE_OP_REMOVE, | 
|  | FILE_OP_STRIP | 
|  | }; | 
|  |  | 
|  | struct FileRecord | 
|  | { | 
|  | FileRecord(); | 
|  |  | 
|  | string listFile; | 
|  | int listLine; | 
|  |  | 
|  | string sourceBase; | 
|  | string sourceName; | 
|  | string sourcePath; | 
|  | bool sourceIsDir; | 
|  | time_t sourceMod; | 
|  | off_t  sourceSize; | 
|  | FileOpType fileOp; | 
|  |  | 
|  | string outName; | 
|  | string outPath; | 
|  | off_t  outSize; | 
|  | time_t outMod; | 
|  | bool outIsDir; | 
|  | unsigned int mode; | 
|  | }; | 
|  |  | 
|  | int read_list_file(const string& filename, | 
|  | const map<string, string>& variables, | 
|  | vector<FileRecord>* files, | 
|  | vector<string>* excludes); | 
|  | int locate(FileRecord* rec, const vector<string>& search); | 
|  | void stat_out(const string& base, FileRecord* rec); | 
|  | string dir_part(const string& filename); | 
|  | int list_dir(const FileRecord& rec, const vector<string>& excludes, | 
|  | vector<FileRecord>* files); | 
|  |  | 
|  | #endif // FILES_H |