source: trunk/gsinstaller/gsManifest.h@ 1545

Last change on this file since 1545 was 1545, checked in by cs025, 24 years ago

Improved logging of manifest items, tidied the handling of items with extended
paths in the manifest (logging creation of directories on the path); finally
removed some old garbage from gsinstall.cpp.

  • 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
29 bool getManifestLine(char *line, string &macro);
30public:
31 gsManifest(installManager &manager, FilePath &path); // used for install
32 gsManifest(installManager &manager); // used for uninstall
33 virtual ~gsManifest () {}
34 bool getManifest(FilePath &path);
35 void logAction(string actionName, string file);
36 void logAction(string actionName, string source, string dest);
37 bool undoAction(string actionName, stringArray &params);
38 void expandGroupInstance(const string &parentgroup, string groupName);
39 void expandGroup(const string &group);
40 void expandGroups();
41 bool isGroup(string &name);
42 void expandMacro(string macroName, string value);
43 void clearSelection();
44 bool copy(FilePath *source);
45 void selectGroup(string groupName, FilePath &destination);
46 FileVector *selection(FilePath &source, stringArray &array);
47 FileVector *selection(FilePath &source, FilePath &destination);
48 bool selectCheckSpace();
49
50 void copiedFile(string from, string to); // from fileCopyMonitor
51 void copiedDir(string dirName); // from fileCopyMonitor
52};
53#endif;
Note: See TracBrowser for help on using the repository browser.