Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: installer/src/installer-lib/database.h

Issue 22887001: Custom action library, initial version (Closed)
Patch Set: Created Oct. 28, 2013, 9:37 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /**
2 * \file database.h MSI database
3 */
4
5 #ifndef DATABASE_H
6 #define DATABASE_H
7
8 #include <string>
9 #include "windows.h"
10 #include "msi.h"
11
12 #include "session.h"
13
14 /**
15 * A Windows Installer database as contained in an MSI file.
16 *
17 * The API for MSI databases is shared between installation and non-installation contexts.
18 * Roughly speaking, outside an installation the database supports both read and write,
19 * but inside an installation the database is read-only.
20 * The life cycle functions are not shared, in addition.
21 * Outside of these restrictions, however, the API is mostly common.
22 * This class is the base class for the common API.
23 * Subclasses provide public constructors and provide access to API calls not in common.
24 */
25 class Database
26 {
27 protected:
28 /**
29 * Protected constructor. Life cycle depends strongly on context.
30 */
31 Database( MSIHANDLE handle );
32
33 /**
34 * Destructor.
35 */
36 ~Database();
37
38 protected:
39 /**
40 */
41 MSIHANDLE handle;
42
43 private:
44 /**
45 * Private copy constructor is declared but not defined.
46 */
47 Database( const Database & );
48
49 /**
50 * Private assignment operator is declared but not defined.
51 */
52 Database & operator=( const Database & ) ;
53 };
54
55 /**
56 * A Windows Installer database in an installation context.
57 */
58 class Installation_Database : public Database
59 {
60 public:
61 /**
62 * The constructor of a database in an installation context has no arguments b ecause the database is a part of that context.
63 */
64 Installation_Database( Immediate_Session & session );
65 };
66
67 /**
68 * A Windows Installer database in a non-installation context.
69 */
70 class Non_Installation_Database : public Database
71 {
72 };
73
74 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld