Om
Public Member Functions | Private Member Functions | List of all members
Om::Source::DefaultSource< ThisItem, ThisImplementation > Class Template Referenceabstract

A partial implementation of Source. More...

#include "default_source.hpp"

+ Inheritance diagram for Om::Source::DefaultSource< ThisItem, ThisImplementation >:
+ Collaboration diagram for Om::Source::DefaultSource< ThisItem, ThisImplementation >:

Public Member Functions

virtual ~DefaultSource ()=0
 
ThisImplementation & operator++ ()
 Pulls the next item from the Source. More...
 
ThisImplementation operator++ (int)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
virtual bool Equals (Source< ThisItem > const &) const
 
bool Equals (ThisImplementation const &) const
 
- Public Member Functions inherited from Om::Source::Source< ThisItem >
virtual ~Source ()=0
 
virtual ThisItem & operator* () const =0
 
ThisItem * operator-> () const
 
virtual bool operator! () const =0
 
 operator Boolean () const
 Implements the Safe Boolean idiom. More...
 
virtual void Pop ()=0
 Pops the current item. More...
 

Private Member Functions

DefaultSourceoperator= (DefaultSource const &)
 

Additional Inherited Members

- Public Types inherited from Om::Source::Source< ThisItem >
typedef void(Source::* Boolean) () const
 The implementation of the Safe Boolean idiom. More...
 

Detailed Description

template<typename ThisItem, typename ThisImplementation>
class Om::Source::DefaultSource< ThisItem, ThisImplementation >

Definition at line 42 of file default_source.hpp.

Constructor & Destructor Documentation

◆ ~DefaultSource()

template<typename ThisItem , typename ThisImplementation >
virtual Om::Source::DefaultSource< ThisItem, ThisImplementation >::~DefaultSource ( )
pure virtual

Member Function Documentation

◆ operator++() [1/2]

template<typename ThisItem , typename ThisImplementation >
ThisImplementation& Om::Source::DefaultSource< ThisItem, ThisImplementation >::operator++ ( )
Precondition
The Source cannot be empty.
Returns
A reference to the derivation.

◆ operator++() [2/2]

template<typename ThisItem , typename ThisImplementation >
ThisImplementation Om::Source::DefaultSource< ThisItem, ThisImplementation >::operator++ ( int  )
Returns
A copy of the derivation.

◆ Equals() [1/2]

template<typename ThisItem , typename ThisImplementation >
virtual bool Om::Source::DefaultSource< ThisItem, ThisImplementation >::Equals ( Source< ThisItem > const &  ) const
virtual
Returns
True if equal.
Note
This is only required to test equality in the context of the pointer-like STL iterator; doesn't take end into account.

Implements Om::Source::Source< ThisItem >.

◆ Equals() [2/2]

template<typename ThisItem , typename ThisImplementation >
bool Om::Source::DefaultSource< ThisItem, ThisImplementation >::Equals ( ThisImplementation const &  ) const
Note
This is a non-virtual declaration that will force a link error if undefined (which could cause infinite recursion in the other form).

◆ operator=()

template<typename ThisItem , typename ThisImplementation >
DefaultSource& Om::Source::DefaultSource< ThisItem, ThisImplementation >::operator= ( DefaultSource< ThisItem, ThisImplementation > const &  )
private

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