Index: installer/src/installer-lib/handle.h |
=================================================================== |
--- a/installer/src/installer-lib/handle.h |
+++ b/installer/src/installer-lib/handle.h |
@@ -2,14 +2,14 @@ |
* \file handle.h The "install session" is the context for all custom installation behavior. |
*/ |
-#ifndef HANDLE_H |
-#define HANDLE_H |
- |
-#include "windows.h" |
-#include "msi.h" |
- |
+#ifndef HANDLE_H |
+#define HANDLE_H |
+ |
+#include "windows.h" |
+#include "msi.h" |
+ |
//------------------------------------------------------- |
-// msi_handle |
+// MsiHandle |
//------------------------------------------------------- |
/** |
* Disambiguation class holding an MSIHANDLE. |
@@ -17,119 +17,119 @@ |
* We need constructors for Record that accept both handles and record counts. |
* Since the underlying type of a handle is integral, without its own type these constructors are ambiguous. |
*/ |
-class msi_handle |
+class MsiHandle |
{ |
- MSIHANDLE _handle ; |
+ MSIHANDLE handle ; |
public: |
/** |
* Ordinary constructor is explicit to avoid inadvertent conversions. |
*/ |
- explicit msi_handle( MSIHANDLE handle ) |
- : _handle( handle ) |
+ explicit MsiHandle( MSIHANDLE handle ) |
+ : handle( handle ) |
{} |
operator MSIHANDLE() |
{ |
- return _handle ; |
+ return handle ; |
} |
-} ; |
- |
+} ; |
+ |
//------------------------------------------------------- |
// Handle Policies |
//------------------------------------------------------- |
/** |
* Policy class that indicates that a raw handle may not be zero. |
*/ |
-template< class T > |
-struct Disallow_Null |
-{ |
- inline static bool prohibited_always() { return true ; } |
- inline static bool prohibited_from_outside() { return true ; } |
-} ; |
+template< class T > |
+struct DisallowNull |
+{ |
+ inline static bool ProhibitedAlways() { return true ; } |
+ inline static bool ProhibitedFromOutside() { return true ; } |
+} ; |
/** |
* Policy class that indicates that a raw handle may be zero only when constructed internally. |
*/ |
-template< class T > |
-struct Special_Null |
-{ |
- inline static bool prohibited_always() { return false ; } |
- inline static bool prohibited_from_outside() { return true ; } |
-} ; |
+template< class T > |
+struct SpecialNull |
+{ |
+ inline static bool ProhibitedAlways() { return false ; } |
+ inline static bool ProhibitedFromOutside() { return true ; } |
+} ; |
/** |
* Policy class that indicates that a raw handle is permitted to be zero. |
*/ |
-template< class T > |
-struct Allow_Null |
-{ |
- inline static bool prohibited_always() { return false ; } |
- inline static bool prohibited_from_outside() { return false ; } |
-} ; |
- |
-/** |
-* Policy class that does not close a handle at all. |
-*/ |
-template< class T > |
-class No_Destruction |
-{ |
-public: |
- inline static void close( T handle ) {} ; |
-} ; |
- |
-/** |
-* Policy class that closes an MSI handle when it goes out of scope. |
-*/ |
-template< class T > |
-class MSI_Generic_Destruction |
-{ |
-public: |
- inline static void close( T handle ) |
- { |
- MsiCloseHandle( handle ) ; |
- } ; |
-} ; |
- |
-/** |
-* Policy class that closes a Windows handle when it goes out of scope. |
-*/ |
-template< class T > |
-class Windows_Generic_Destruction |
-{ |
-public: |
- inline static void close( T handle ) |
- { |
- CloseHandle( handle ) ; |
- } ; |
-} ; |
- |
- |
+template< class T > |
+struct AllowNull |
+{ |
+ inline static bool ProhibitedAlways() { return false ; } |
+ inline static bool ProhibitedFromOutside() { return false ; } |
+} ; |
+ |
+/** |
+* Policy class that does not close a handle at all. |
+*/ |
+template< class T > |
+class NoDestruction |
+{ |
+public: |
+ inline static void Close( T handle ) {} ; |
+} ; |
+ |
+/** |
+* Policy class that closes an MSI handle when it goes out of scope. |
+*/ |
+template< class T > |
+class GenericMsiDestruction |
+{ |
+public: |
+ inline static void Close( T handle ) |
+ { |
+ MsiCloseHandle( handle ) ; |
+ } ; |
+} ; |
+ |
+/** |
+* Policy class that closes a Windows handle when it goes out of scope. |
+*/ |
+template< class T > |
+class GenericWindowsDestruction |
+{ |
+public: |
+ inline static void Close( T handle ) |
+ { |
+ CloseHandle( handle ) ; |
+ } ; |
+} ; |
+ |
+ |
//------------------------------------------------------- |
// Handle |
//------------------------------------------------------- |
-/** |
-* Raw handle is the base class for the generic handle. |
-* |
-* Raw handles always allow null, so that generic handles may allow or disallow them as they please. |
-*/ |
-template< class T > |
-class handle_raw |
-{ |
-protected: |
+/** |
+* Raw handle is the base class for the generic handle. |
+* |
+* Raw handles always allow null, so that generic handles may allow or disallow them as they please. |
+*/ |
+template< class T > |
+class HandleRaw |
+{ |
+protected: |
/** |
* The underlying handle. |
* |
* This is the only data member of the class. |
* Everything else is for life cycle and type conversion. |
*/ |
- T _handle ; |
+ T handle ; |
/** |
* Basic constructor is protected to cede creation policy entirely to subclasses. |
*/ |
- handle_raw( T _handle ) |
- : _handle( _handle ) |
+ HandleRaw( T handle ) |
+ : handle( handle ) |
{} |
public: |
@@ -138,7 +138,7 @@ |
*/ |
operator T() |
{ |
- return _handle ; |
+ return handle ; |
} |
/** |
@@ -147,130 +147,130 @@ |
* Note that this error is a logic_error, not a runtime error. |
* If it's against policy for a handle to be null, it's an error for the caller to try to make it null. |
* Policy enforcment here is not a substitute for good error handling by the caller. |
- * In many cases, the caller ought to be throwing windows_api_error. |
+ * In many cases, the caller ought to be throwing WindowsApiError. |
*/ |
- struct null_handle_error |
+ struct NullHandleError |
: public std::logic_error |
{ |
- null_handle_error() |
+ NullHandleError() |
: std::logic_error( "May not initialize with null handle" ) |
{} |
} ; |
-} ; |
+} ; |
/* |
* Handle class |
*/ |
template< |
class T, |
- template <class> class Null_Policy, |
- template <class> class Destruction_Policy = No_Destruction |
+ template <class> class NullPolicy, |
+ template <class> class DestructionPolicy = NoDestruction |
> |
-class handle |
- : public handle_raw< T > |
+class Handle |
+ : public HandleRaw< T > |
{ |
/** |
- * Copy constructor prohibited. |
- * |
- * This class represents an external resource and is responsible for its lifecycle. |
- * As such, the semantics here require a one-to-one match between instances and resource. |
- * Copy construction violates these semantics. |
- * |
- * \par Implementation |
- * Currently, declared private and not defined. |
- * Add "= delete" for C++11. |
- */ |
- handle( handle & ) ; |
+ * Copy constructor prohibited. |
+ * |
+ * This class represents an external resource and is responsible for its lifecycle. |
+ * As such, the semantics here require a one-to-one match between instances and resource. |
+ * Copy construction violates these semantics. |
+ * |
+ * \par Implementation |
+ * Currently, declared private and not defined. |
+ * Add "= delete" for C++11. |
+ */ |
+ Handle( Handle & ) ; |
/** |
- * Copy assignment not implemented. |
- * |
- * It's not used anywhere yet. |
- * |
- * \par Implementation |
- * Currently, declared private and not defined. |
- */ |
- handle operator=( const handle & ) ; |
+ * Copy assignment not implemented. |
+ * |
+ * It's not used anywhere yet. |
+ * |
+ * \par Implementation |
+ * Currently, declared private and not defined. |
+ */ |
+ Handle operator=( const Handle & ) ; |
/** |
- * Validate initial handle values, both for construction and reinitialization assignment. |
- */ |
- T validate_handle( T handle ) |
+ * Validate initial handle values, both for construction and reinitialization assignment. |
+ */ |
+ T ValidateHandle( T handle ) |
{ |
- if ( Null_Policy< T >::prohibited_from_outside() && handle == 0 ) |
+ if ( NullPolicy< T >::ProhibitedFromOutside() && handle == 0 ) |
{ |
- throw null_handle_error() ; |
+ throw NullHandleError() ; |
} |
return handle ; |
} |
protected: |
- /** |
- * Tag class for null record constructor |
- */ |
- class null_t {} ; |
- |
- /** |
- * Null handle constructor initializes its handle to zero. |
- * |
- * The null record constructor avoids the ordinary check that an external handle not be zero. |
- * It's declared protected so that it's not ordinarily visible. |
- * To use this constructor, derive from it and add a friend declaration. |
- */ |
- handle( null_t ) |
- : handle_raw( 0 ) |
- { |
- if ( Null_Policy< T >::prohibited_always() ) |
- { |
- throw null_handle_error() ; |
- } |
- } |
+ /** |
+ * Tag class for null record constructor |
+ */ |
+ class NullType {} ; |
+ |
+ /** |
+ * Null handle constructor initializes its handle to zero. |
+ * |
+ * The null record constructor avoids the ordinary check that an external handle not be zero. |
+ * It's declared protected so that it's not ordinarily visible. |
+ * To use this constructor, derive from it and add a friend declaration. |
+ */ |
+ Handle( NullType ) |
+ : HandleRaw( 0 ) |
+ { |
+ if ( NullPolicy< T >::ProhibitedAlways() ) |
+ { |
+ throw NullHandleError() ; |
+ } |
+ } |
public: |
/** |
- * Ordinary constructor. |
- * |
- * A check for a non-zero handle compiles in conditionally based on the Null_Policy. |
- */ |
- handle( T handle ) |
- : handle_raw( validate_handle( handle ) ) |
+ * Ordinary constructor. |
+ * |
+ * A check for a non-zero handle compiles in conditionally based on the NullPolicy. |
+ */ |
+ Handle( T handle ) |
+ : HandleRaw( ValidateHandle( handle ) ) |
{} |
/** |
- * Reinitialization Assignment. |
- * |
- * If we had C++11 move constructors, we wouldn't need this, since this acts exactly as construct-plus-move would. |
- */ |
- handle & operator=( T handle ) |
+ * Reinitialization Assignment. |
+ * |
+ * If we had C++11 move constructors, we wouldn't need this, since this acts exactly as construct-plus-move would. |
+ */ |
+ Handle & operator=( T handle ) |
{ |
- validate_handle( handle ) ; |
- this -> ~handle() ; |
- _handle = handle ; |
+ ValidateHandle( handle ) ; |
+ this -> ~Handle() ; |
+ this -> handle = handle ; |
return * this ; |
} |
/** |
- * Destructor |
- * |
- * The check for a non-zero handle compiles out conditionally based on Null_Policy. |
- * The specific function used to close the handle is given by the Destruction_Policy. |
- */ |
- ~handle() |
+ * Destructor |
+ * |
+ * The check for a non-zero handle compiles out conditionally based on NullPolicy. |
+ * The specific function used to close the handle is given by the DestructionPolicy. |
+ */ |
+ ~Handle() |
{ |
- if ( Null_Policy< T >::prohibited_always() || ( _handle != 0 ) ) { |
- Destruction_Policy< T >::close( _handle ) ; |
+ if ( NullPolicy< T >::ProhibitedAlways() || ( handle != 0 ) ) { |
+ DestructionPolicy< T >::Close( handle ) ; |
} |
} |
/** |
- * Expose the underlying handle type. |
- */ |
- typedef T handle_type ; |
+ * Expose the underlying handle type. |
+ */ |
+ typedef T HandleType ; |
} ; |
//------------------------------------------------------- |
// Common instantiations of handle |
//------------------------------------------------------- |
-typedef handle< HANDLE, Disallow_Null, Windows_Generic_Destruction > Windows_Handle ; |
+typedef Handle< HANDLE, DisallowNull, GenericWindowsDestruction > WindowsHandle ; |
-#endif |
+#endif |