interface_cast_base Class Template Reference
[Conversion Library]

#include <comstl/conversion/interface_cast.hpp>

Inheritance diagram for interface_cast_base:

interface_cast_addref interface_cast_noaddref

List of all members.


Detailed Description

template<typename I, typename R, typename X>
class comstl::interface_cast_base< I, R, X >

Base class for the interface cast classes comstl::interface_cast_noaddref and comstl::interface_cast_addref.

This class serves only as a base, and cannot be used in isolation

Parameters:
I The interface pointer type
R The release type
X The exception type

Not to be implemented

 interface_cast_base (class_type const &rhs)

Public Types

Member Types
typedef I interface_pointer_type
 The interface pointer type.
typedef
interface_pointer_traits< I >
::interface_type 
interface_type
 The interface type.
typedef R release_type
 The release type.
typedef X exception_policy_type
 The exception type.
typedef
exception_policy_type::thrown_type 
thrown_type
 The thrown type.
typedef interface_cast_base< I,
R, X > 
class_type
 The type of the current parameterisation.

Protected Types

Member Constants
enum  NullThrowPermission {
  allowNull,
  throwOnNull
}

Protected Member Functions

Construction
template<typename J>
 interface_cast_base (J &j, NullThrowPermission permission)
 Constructor that attempts the speculative cast.
 interface_cast_base (interface_pointer_type pi)
 Constructor that directly casts (without calling QueryInterface()).
 ~interface_cast_base () throw ()
 Releases the acquired interface pointer according to the release_type policy.
Accessors
interface_pointer_type const & get_pointer_ ()
 Returns a non-mutating reference to the acquired interface pointer.
interface_pointer_type get_pointer_ () const
 Returns a copy of the acquired interface pointer.

Member Typedef Documentation

The interface pointer type.

Reimplemented in interface_cast_noaddref, and interface_cast_addref.

typedef interface_pointer_traits<I>::interface_type interface_type

The interface type.

Reimplemented in interface_cast_noaddref.

typedef R release_type

The release type.

The exception type.

typedef exception_policy_type::thrown_type thrown_type

The thrown type.

typedef interface_cast_base<I, R, X> class_type

The type of the current parameterisation.

Reimplemented in interface_cast_noaddref, and interface_cast_addref.


Constructor & Destructor Documentation

interface_cast_base ( J &  j,
NullThrowPermission  permission 
) [inline, explicit, protected]

Constructor that attempts the speculative cast.

interface_cast_base ( interface_pointer_type  pi  )  [inline, explicit, protected]

Constructor that directly casts (without calling QueryInterface()).

~interface_cast_base (  )  throw () [inline, protected]

Releases the acquired interface pointer according to the release_type policy.


Member Function Documentation

interface_pointer_type const& get_pointer_ (  )  [inline, protected]

Returns a non-mutating reference to the acquired interface pointer.

interface_pointer_type get_pointer_ (  )  const [inline, protected]

Returns a copy of the acquired interface pointer.


The documentation for this class was generated from the following file:

Generated on Thu Jun 10 08:58:25 2010 for STLSoft by  doxygen 1.5.6