#ifndef _GSMANIFEST_H_ #define _GSMANIFEST_H_ #include // use the standard namespace #if !defined (GSDL_NAMESPACE_BROKEN) #if defined(GSDL_USE_OBJECTSPACE) using namespace ospace::std; #else using namespace std; #endif #endif #include "File.h" #include "FilePath.h" #include "FileCopier.h" #include "stringArray.h" #include "uninstall.h" typedef map > pathStringArrayMap; class gsManifest : public installAgent, fileCopyMonitor { private: protected: strArrayMap manifests; pathStringArrayMap selected; stringArray removeFailed; FilePath collectRoot; bool getManifestLine(char *line, string ¯o); public: gsManifest(installManager &manager, FilePath &path); // used for install gsManifest(installManager &manager); // used for uninstall virtual ~gsManifest () {} bool getManifest(FilePath &path); void logAction(string actionName, string file); void logAction(string actionName, string source, string dest); bool undoAction(string actionName, stringArray ¶ms); bool undoFailed(string path); void expandGroupInstance(const string &parentgroup, string groupName); void expandGroup(const string &group); void expandGroups(); bool isGroup(string &name); void expandMacro(string macroName, string value); void clearSelection(); bool copy(FilePath *source); void selectGroup(string groupName, FilePath &destination); FileVector *selection(FilePath &source, stringArray &array); FileVector *selection(FilePath &source, FilePath &destination); bool selectCheckSpace(); void copiedFile(string from, string to); // from fileCopyMonitor void createdDir(string dirName); // from fileCopyMonitor void copiedDir(string dirName); // from fileCopyMonitor }; #endif;