source: trunk/gsinstaller/gsManifest.h@ 2013

Last change on this file since 2013 was 2013, checked in by cs025, 23 years ago

Updates and fixes to permit removal of the main install directory successfully.

  • Property svn:keywords set to Author Date Id Revision
File size: 1.6 KB
Line 
1#ifndef _GSMANIFEST_H_
2#define _GSMANIFEST_H_
3#include <map>
4
5// use the standard namespace
6#if !defined (GSDL_NAMESPACE_BROKEN)
7#if defined(GSDL_USE_OBJECTSPACE)
8using namespace ospace::std;
9#else
10using namespace std;
11#endif
12#endif
13
14#include "File.h"
15#include "FilePath.h"
16#include "FileCopier.h"
17#include "stringArray.h"
18#include "uninstall.h"
19
20typedef map<FilePath, stringArray, less<FilePath> > pathStringArrayMap;
21
22class gsManifest : public installAgent, fileCopyMonitor
23{
24private:
25protected:
26 strArrayMap manifests;
27 pathStringArrayMap selected;
28 stringArray removeFailed;
29
30 bool getManifestLine(char *line, string &macro);
31public:
32 gsManifest(installManager &manager, FilePath &path); // used for install
33 gsManifest(installManager &manager); // used for uninstall
34 virtual ~gsManifest () {}
35 bool getManifest(FilePath &path);
36 void logAction(string actionName, string file);
37 void logAction(string actionName, string source, string dest);
38 bool undoAction(string actionName, stringArray &params);
39 bool undoFailed(string path);
40 void expandGroupInstance(const string &parentgroup, string groupName);
41 void expandGroup(const string &group);
42 void expandGroups();
43 bool isGroup(string &name);
44 void expandMacro(string macroName, string value);
45 void clearSelection();
46 bool copy(FilePath *source);
47 void selectGroup(string groupName, FilePath &destination);
48 FileVector *selection(FilePath &source, stringArray &array);
49 FileVector *selection(FilePath &source, FilePath &destination);
50 bool selectCheckSpace();
51
52 void copiedFile(string from, string to); // from fileCopyMonitor
53 void copiedDir(string dirName); // from fileCopyMonitor
54};
55#endif;
Note: See TracBrowser for help on using the repository browser.