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

Unified Diff: installer/src/installer-lib/session.h

Issue 5992177905696768: Issue #1186 - Rename symbols defined in 'installer-lib' (Closed)
Patch Set: fixed issues; rebased; new fixes from rebase Created June 19, 2015, 4:09 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « installer/src/installer-lib/record.cpp ('k') | installer/src/installer-lib/session.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: installer/src/installer-lib/session.h
===================================================================
--- a/installer/src/installer-lib/session.h
+++ b/installer/src/installer-lib/session.h
@@ -2,253 +2,253 @@
* \file session.h The "install session" is the context for all custom installation behavior.
*/
-#ifndef SESSION_H
-#define SESSION_H
-
-#include "property.h"
-#include "record.h"
-
-#include <string>
-#include "windows.h"
-#include "msi.h"
-
-//-----------------------------------------------------------------------------------------
-// Message
-//-----------------------------------------------------------------------------------------
-/**
-* Wrapper class for arguments to MsiProcessMessage.
-*
-* The "user interface" for custom actions includes both interactive dialog boxes as well as the installation log.
-* All of them use the same call, MsiProcessMessage.
-* This class encapsulates its arguments.
-*
-* \sa
-* * MSDN [MsiProcessMessage function](http://msdn.microsoft.com/en-us/library/windows/desktop/aa370354%28v=vs.85%29.aspx)
-* * MSDN [Sending Messages to Windows Installer Using MsiProcessMessage](http://msdn.microsoft.com/en-us/library/windows/desktop/aa371614%28v=vs.85%29.aspx)
-*/
-class Message
-{
-protected:
- /**
- * The flags used by MsiProcessMessage as the box type.
- */
- INSTALLMESSAGE message_type ;
-
- /**
- * The record argument to MsiProcessMessage
- */
- Record r ;
-
- Message( std::string message, INSTALLMESSAGE message_type ) ;
-
- Message( std::wstring message, INSTALLMESSAGE message_type ) ;
-
- /**
- * This class is a helper for Session, mustering all the arguments for MsiProcessMessage except for the session handle.
- */
- friend Session ;
-} ;
-
-//-----------------------------------------------------------------------------------------
-// Session
-//-----------------------------------------------------------------------------------------
-/**
-* A Windows Installer session
-*
-* Always instantiate an instance of this class at the start of each custom action.
-* Copy and assignment are disabled, so session objects are always passed by reference.
-*
-* This class is the base for both immediate and deferred custom actions.
-* Immediate custom actions always have an installer database associated with them; deferred actions never do.
-* Both immediate and deferred actions may be executed synchronously or asynchronously; this class is silent about any difference.
-*
-* \par Notes
-* This class is patterned after WcaInitialize/WcaFinalize of the WiX custom action library.
-* There are two things that class does that this one does not.
-* - Extract the file version information from the DLL using GetModuleFileName* and GetFileVersionInfo* system calls.
-* - Set a "global atom" (a Windows system object) to store the logging state, later to be accessed by deferred actions.
-*/
-class Session {
-public:
- /**
- * Destructor.
- */
- ~Session() ;
-
- /**
- * Write a message to the installation log, regular string version.
- */
- void Log( std::string message ) ;
-
- /**
- * Write a message to the installation log, wide string version.
- */
- void Log( std::wstring message ) ;
-
- /**
- * Write a message to the installation log without raising an exception.
- *
- * Use this function only in the three circumstances when an exception cannot be caught by an entry point catch-all.
- * First and second, there's the constructor and destructor of a Session instance.
- * These log entry into and exit from the custom action, respectively.
- * Third, there's the top level catch-blocks of the CA.
- * The scope of the Session object cannot be within the try-block in order for it to be in scope for the catch-block.
- * The session must be in scope in the catch-block to allow logging error messages.
- * In all other cases, use the exception mechanism.
- */
- void LogNoexcept( std::string message ) ;
-
- /**
- * Write to a MessageBox dialog.
- */
- int WriteMessage( Message & ) ;
-
-protected:
- /**
- * Ordinary constructor is protected; public constructors are all in subclasses.
- * The MSI system uses a single handle type for all types of sessions. This handle is here in this base class.
- *
- * \param[in] handle
- * Handle for the Windows Installer session provided as an argument to a custom action.
- * \param[in] name
- * The name of the custom action, used for logging.
- * This string must be ASCII characters only, so that its wide-character version displays identically.
- */
- Session( MSIHANDLE handle, std::string name ) ;
-
- /**
- * Handle for the Windows Installer session.
- *
- * The life cycle of the session handle is not the responsibility of the base class.
- * In an interactive session, the handle is provided as an argument to the custom action entry point, and we do not manage its life cycle.
- * In an offline session, the handle is created in the (subclass) constructor.
- */
- MSIHANDLE handle ;
-
-private:
- /**
- * Prefix for log messages, regular string. Contains the name of the custom action.
- */
- std::string log_prefix ;
-
- /**
- * Prefix for log messages, wide string. Contains the name of the custom action.
- */
- std::wstring log_prefix_w ;
-
- /**
- * Private copy constructor is declared but not defined.
- *
- * C++11: declare with <b>= delete</b>.
- */
- Session( const Session & ) ;
-
- /**
- * Write a message with MsiProcessMessage and throw no exceptions.
- *
- * This is declared private because there are very few cases in which no-exception behavior is required.
- *
- * C++11: declare with **noexcept**.
- */
- int write_message_noexcept( Message & m ) ;
-
- /**
- * Private assignment operator is declared but not defined.
- *
- * C++11: declare with <b>= delete</b>.
- */
- Session & operator=( const Session & ) ;
-
- /**
- * The Property class requires access to the session handle.
- */
- friend Property::Property( Session & session, std::wstring name ) ;
-};
-
-//-----------------------------------------------------------------------------------------
-// ImmediateSession
-//-----------------------------------------------------------------------------------------
-/**
-* Session for immediate custom actions.
-*
-* Access to the installer database is by passing a reference to a class of this subtype to a Database constructor.
-*/
-class ImmediateSession : public Session
-{
-public:
- /**
- * Ordinary constructor.
- *
- * \param[in] handle
- * Handle for the Windows Installer session provided as an argument to a custom action.
- * \param[in] name
- * The name of the custom action, used for logging.
- *
- * **noexcept** declaration to be added for C++11.
- */
- ImmediateSession( MSIHANDLE handle, std::string name ) ;
-
-private:
- /*
- * Allow helper function for Installation_Database constructor to have access to the handle.
- */
- friend msi_handle get_active_database( ImmediateSession & session ) ;
-};
-
-
-//-----------------------------------------------------------------------------------------
-// Deferred_Session
-//-----------------------------------------------------------------------------------------
-/**
-* Session for deferred custom actions.
-*
-* There's much less context information easily available from a deferred custom action.
-*
-* /sa MDSN "Deferred Execution Custom Actions"
-* http://msdn.microsoft.com/en-us/library/windows/desktop/aa368268%28v=vs.85%29.aspx
-* for general information.
-*
-* /sa MSDN "Obtaining Context Information for Deferred Execution Custom Actions"
-* http://msdn.microsoft.com/en-us/library/windows/desktop/aa370543%28v=vs.85%29.aspx
-* lists the API calls available.
-*/
-class Deferred_Session : public Session
-{
-public:
- /**
- * Ordinary constructor.
- *
- * \param[in] handle
- * Handle for the Windows Installer session provided as an argument to a custom action.
- * \param[in] name
- * The name of the custom action, used for logging.
- */
- Deferred_Session( MSIHANDLE handle, std::wstring name ) ;
-};
-
-
-//-----------------------------------------------------------------------------------------
-// Commit_Session
-//-----------------------------------------------------------------------------------------
-/**
-* The session for a commit custom action. NOT IMPLEMENTED.
-*
-* \sa MSDN "Commit Custom Actions" http://msdn.microsoft.com/en-us/library/windows/desktop/aa367991%28v=vs.85%29.aspx
-*/
-class Commit_Session
-{
-};
-
-//-----------------------------------------------------------------------------------------
-// Rollback_Session
-//-----------------------------------------------------------------------------------------
-/**
-* The session for a rollback custom action. NOT IMPLEMENTED.
-*
-* \sa MSDN "Rollback Custom Actions" http://msdn.microsoft.com/en-us/library/windows/desktop/aa371369%28v=vs.85%29.aspx
-*/
-class Rollback_Session
-{
-};
-
-#endif
+#ifndef SESSION_H
+#define SESSION_H
+
+#include "property.h"
+#include "record.h"
+
+#include <string>
+#include "windows.h"
+#include "msi.h"
+
+//-----------------------------------------------------------------------------------------
+// Message
+//-----------------------------------------------------------------------------------------
+/**
+ * Wrapper class for arguments to MsiProcessMessage.
+ *
+ * The "user interface" for custom actions includes both interactive dialog boxes as well as the installation log.
+ * All of them use the same call, MsiProcessMessage.
+ * This class encapsulates its arguments.
+ *
+ * \sa
+ * * MSDN [MsiProcessMessage function](http://msdn.microsoft.com/en-us/library/windows/desktop/aa370354%28v=vs.85%29.aspx)
+ * * MSDN [Sending Messages to Windows Installer Using MsiProcessMessage](http://msdn.microsoft.com/en-us/library/windows/desktop/aa371614%28v=vs.85%29.aspx)
+ */
+class Message
+{
+protected:
+ /**
+ * The flags used by MsiProcessMessage as the box type.
+ */
+ INSTALLMESSAGE MessageTypeCode ;
+
+ /**
+ * The record argument to MsiProcessMessage
+ */
+ Record r ;
+
+ Message( std::string message, INSTALLMESSAGE MessageTypeCode ) ;
+
+ Message( std::wstring message, INSTALLMESSAGE MessageTypeCode ) ;
+
+ /**
+ * This class is a helper for Session, mustering all the arguments for MsiProcessMessage except for the session handle.
+ */
+ friend Session ;
+} ;
+
+//-----------------------------------------------------------------------------------------
+// Session
+//-----------------------------------------------------------------------------------------
+/**
+* A Windows Installer session
+*
+* Always instantiate an instance of this class at the start of each custom action.
+* Copy and assignment are disabled, so session objects are always passed by reference.
+*
+* This class is the base for both immediate and deferred custom actions.
+* Immediate custom actions always have an installer database associated with them; deferred actions never do.
+* Both immediate and deferred actions may be executed synchronously or asynchronously; this class is silent about any difference.
+*
+* \par Notes
+* This class is patterned after WcaInitialize/WcaFinalize of the WiX custom action library.
+* There are two things that class does that this one does not.
+* - Extract the file version information from the DLL using GetModuleFileName* and GetFileVersionInfo* system calls.
+* - Set a "global atom" (a Windows system object) to store the logging state, later to be accessed by deferred actions.
+*/
+class Session {
+public:
+ /**
+ * Destructor.
+ */
+ ~Session() ;
+
+ /**
+ * Write a message to the installation log, regular string version.
+ */
+ void Log( std::string message ) ;
+
+ /**
+ * Write a message to the installation log, wide string version.
+ */
+ void Log( std::wstring message ) ;
+
+ /**
+ * Write a message to the installation log without raising an exception.
+ *
+ * Use this function only in the three circumstances when an exception cannot be caught by an entry point catch-all.
+ * First and second, there's the constructor and destructor of a Session instance.
+ * These log entry into and exit from the custom action, respectively.
+ * Third, there's the top level catch-blocks of the CA.
+ * The scope of the Session object cannot be within the try-block in order for it to be in scope for the catch-block.
+ * The session must be in scope in the catch-block to allow logging error messages.
+ * In all other cases, use the exception mechanism.
+ */
+ void LogNoexcept( std::string message ) ;
+
+ /**
+ * Write to a MessageBox dialog.
+ */
+ int WriteMessage( Message & ) ;
+
+protected:
+ /**
+ * Ordinary constructor is protected; public constructors are all in subclasses.
+ * The MSI system uses a single handle type for all types of sessions. This handle is here in this base class.
+ *
+ * \param[in] handle
+ * Handle for the Windows Installer session provided as an argument to a custom action.
+ * \param[in] name
+ * The name of the custom action, used for logging.
+ * This string must be ASCII characters only, so that its wide-character version displays identically.
+ */
+ Session( MSIHANDLE handle, std::string name ) ;
+
+ /**
+ * Handle for the Windows Installer session.
+ *
+ * The life cycle of the session handle is not the responsibility of the base class.
+ * In an interactive session, the handle is provided as an argument to the custom action entry point, and we do not manage its life cycle.
+ * In an offline session, the handle is created in the (subclass) constructor.
+ */
+ MSIHANDLE handle ;
+
+private:
+ /**
+ * Prefix for log messages, regular string. Contains the name of the custom action.
+ */
+ std::string logPrefix ;
+
+ /**
+ * Prefix for log messages, wide string. Contains the name of the custom action.
+ */
+ std::wstring logPrefixW ;
+
+ /**
+ * Private copy constructor is declared but not defined.
+ *
+ * C++11: declare with <b>= delete</b>.
+ */
+ Session( const Session & ) ;
+
+ /**
+ * Write a message with MsiProcessMessage and throw no exceptions.
+ *
+ * This is declared private because there are very few cases in which no-exception behavior is required.
+ *
+ * C++11: declare with **noexcept**.
+ */
+ int WriteMessageNoexcept( Message & m ) ;
+
+ /**
+ * Private assignment operator is declared but not defined.
+ *
+ * C++11: declare with <b>= delete</b>.
+ */
+ Session & operator=( const Session & ) ;
+
+ /**
+ * The Property class requires access to the session handle.
+ */
+ friend Property::Property( Session & session, std::wstring name ) ;
+};
+
+//-----------------------------------------------------------------------------------------
+// ImmediateSession
+//-----------------------------------------------------------------------------------------
+/**
+* Session for immediate custom actions.
+*
+* Access to the installer database is by passing a reference to a class of this subtype to a Database constructor.
+*/
+class ImmediateSession : public Session
+{
+public:
+ /**
+ * Ordinary constructor.
+ *
+ * \param[in] handle
+ * Handle for the Windows Installer session provided as an argument to a custom action.
+ * \param[in] name
+ * The name of the custom action, used for logging.
+ *
+ * **noexcept** declaration to be added for C++11.
+ */
+ ImmediateSession( MSIHANDLE handle, std::string name ) ;
+
+private:
+ /*
+ * Allow helper function for InstallationDatabase constructor to have access to the handle.
+ */
+ friend MsiHandle GetActiveDatabase( ImmediateSession & session ) ;
+};
+
+
+//-----------------------------------------------------------------------------------------
+// DeferredSession
+//-----------------------------------------------------------------------------------------
+/**
+* Session for deferred custom actions.
+*
+* There's much less context information easily available from a deferred custom action.
+*
+* /sa MDSN "Deferred Execution Custom Actions"
+* http://msdn.microsoft.com/en-us/library/windows/desktop/aa368268%28v=vs.85%29.aspx
+* for general information.
+*
+* /sa MSDN "Obtaining Context Information for Deferred Execution Custom Actions"
+* http://msdn.microsoft.com/en-us/library/windows/desktop/aa370543%28v=vs.85%29.aspx
+* lists the API calls available.
+*/
+class DeferredSession : public Session
+{
+public:
+ /**
+ * Ordinary constructor.
+ *
+ * \param[in] handle
+ * Handle for the Windows Installer session provided as an argument to a custom action.
+ * \param[in] name
+ * The name of the custom action, used for logging.
+ */
+ DeferredSession( MSIHANDLE handle, std::wstring name ) ;
+};
+
+
+//-----------------------------------------------------------------------------------------
+// CommitSession
+//-----------------------------------------------------------------------------------------
+/**
+* The session for a commit custom action. NOT IMPLEMENTED.
+*
+* \sa MSDN "Commit Custom Actions" http://msdn.microsoft.com/en-us/library/windows/desktop/aa367991%28v=vs.85%29.aspx
+*/
+class CommitSession
+{
+};
+
+//-----------------------------------------------------------------------------------------
+// RollbackSession
+//-----------------------------------------------------------------------------------------
+/**
+* The session for a rollback custom action. NOT IMPLEMENTED.
+*
+* \sa MSDN "Rollback Custom Actions" http://msdn.microsoft.com/en-us/library/windows/desktop/aa371369%28v=vs.85%29.aspx
+*/
+class RollbackSession
+{
+};
+
+#endif
« no previous file with comments | « installer/src/installer-lib/record.cpp ('k') | installer/src/installer-lib/session.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld