WMI Library
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes
WMI::TypedObjectIterator< T > Class Template Reference

A type-safe version of ObjectIterator. More...

#include <TypedObjectIterator.hpp>

List of all members.

Public Types

typedef WCL::ComPtr
< IEnumWbemClassObject > 
IEnumWbemClassObjectPtr
 The underlying WMI iterator type.
typedef WCL::ComPtr
< IWbemClassObject > 
IWbemClassObjectPtr
 The iterator value type.

Public Member Functions

 TypedObjectIterator ()
 Constructor for the End iterator.
 TypedObjectIterator (IEnumWbemClassObjectPtr enumerator)
 Constructor for the Begin iterator.
 TypedObjectIterator (ObjectIterator enumerator)
 Constructor for the Begin iterator.
 ~TypedObjectIterator ()
 Destructor.
const T & operator* () const
 Dereference operator.
const T * operator-> () const
 Pointer-to-member operator.
void operator++ ()
 Advance the iterator.
bool equals (const TypedObjectIterator< T > &rhs) const
 Compare to another iterator for equivalence.

Private Types

typedef Core::SharedPtr< T > ValuePtr
 The value shared pointer type.

Private Member Functions

void increment ()
 Move the iterator forward.
void reset ()
 Move the iterator to the End.

Private Attributes

ObjectIterator m_end
 The underlyng end iterator.
ObjectIterator m_enumerator
 The underlyng iterator.
ValuePtr m_value
 The current iterator value.

Detailed Description

template<typename T>
class WMI::TypedObjectIterator< T >

A type-safe version of ObjectIterator.

Internally this uses ObjectIterator and relies on the Win32_* WMI classes checking that they are being constructed with a WMI object of the correct class.


Member Typedef Documentation

template<typename T >
typedef WCL::ComPtr<IEnumWbemClassObject> WMI::TypedObjectIterator< T >::IEnumWbemClassObjectPtr

The underlying WMI iterator type.

template<typename T >
typedef WCL::ComPtr<IWbemClassObject> WMI::TypedObjectIterator< T >::IWbemClassObjectPtr

The iterator value type.

template<typename T >
typedef Core::SharedPtr<T> WMI::TypedObjectIterator< T >::ValuePtr [private]

The value shared pointer type.


Constructor & Destructor Documentation

template<typename T >
WMI::TypedObjectIterator< T >::TypedObjectIterator ( )

Constructor for the End iterator.

template<typename T >
WMI::TypedObjectIterator< T >::TypedObjectIterator ( IEnumWbemClassObjectPtr  enumerator)

Constructor for the Begin iterator.

template<typename T >
WMI::TypedObjectIterator< T >::TypedObjectIterator ( ObjectIterator  enumerator)

Constructor for the Begin iterator.

template<typename T >
WMI::TypedObjectIterator< T >::~TypedObjectIterator ( )

Destructor.


Member Function Documentation

template<typename T >
const T & WMI::TypedObjectIterator< T >::operator* ( ) const

Dereference operator.

template<typename T >
const T * WMI::TypedObjectIterator< T >::operator-> ( ) const

Pointer-to-member operator.

template<typename T >
void WMI::TypedObjectIterator< T >::operator++ ( )

Advance the iterator.

template<typename T >
bool WMI::TypedObjectIterator< T >::equals ( const TypedObjectIterator< T > &  rhs) const

Compare to another iterator for equivalence.

template<typename T >
void WMI::TypedObjectIterator< T >::increment ( ) [private]

Move the iterator forward.

template<typename T >
void WMI::TypedObjectIterator< T >::reset ( ) [private]

Move the iterator to the End.


Member Data Documentation

template<typename T >
ObjectIterator WMI::TypedObjectIterator< T >::m_end [private]

The underlyng end iterator.

template<typename T >
ObjectIterator WMI::TypedObjectIterator< T >::m_enumerator [private]

The underlyng iterator.

template<typename T >
ValuePtr WMI::TypedObjectIterator< T >::m_value [private]

The current iterator value.


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