Om
Public Member Functions | Private Member Functions | List of all members
Om::Language::DefaultElement< ThisImplementation, ThisInterface > Class Template Referenceabstract

A partial implementation of Element. More...

#include "default_element.hpp"

+ Inheritance diagram for Om::Language::DefaultElement< ThisImplementation, ThisInterface >:
+ Collaboration diagram for Om::Language::DefaultElement< ThisImplementation, ThisInterface >:

Public Member Functions

virtual ~DefaultElement ()=0
 
virtual bool Equals (Element const &) const
 
bool Equals (ThisImplementation const &) const
 
virtual std::auto_ptr< Om::Source::Source< Element > > GetElementRange ()
 
virtual std::auto_ptr< Om::Source::Source< Element const > > GetElementRange () const
 
virtual void GiveElements (Consumer &)
 
virtual void GiveElements (Consumer &) const
 
- Public Member Functions inherited from Om::Language::DefaultProgram< ThisImplementation, Om::Language::Element >
virtual ~DefaultProgram ()=0
 
virtual bool Equals (Program const &) const
 
virtual void TakeElements (Producer &)
 Takes each Element of the argument. More...
 
virtual void TakeElements (Producer const &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
- Public Member Functions inherited from Om::Language::DefaultConsumer< ThisImplementation, ThisInterface >
virtual ~DefaultConsumer ()=0
 
virtual void TakeElement (Operand &)
 Takes a non-empty Element, which gets copied or swapped. More...
 
virtual void TakeElement (Operand const &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
virtual void TakeElement (Operator &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
virtual void TakeElement (Operator const &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
virtual void TakeElement (Separator &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
virtual void TakeElement (Separator const &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
virtual void TakeQuotedElements (Producer &)
 Constructs and takes an Operand, which takes each Element from the argument Producer. More...
 
virtual void TakeQuotedElements (Producer const &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
- Public Member Functions inherited from Om::Language::Consumer
virtual ~Consumer ()=0
 
template<typename TheOperator , typename TheSeparator >
void Parse (Reader &)
 
virtual void ParseElements (Reader &)=0
 
virtual void ParseQuotedElements (Reader &)=0
 
void TakeElement (Null &)
 Takes a Null Element, which is disregarded. More...
 
void TakeElement (Null const &)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. More...
 
- Public Member Functions inherited from Om::Taker< ThisImplementation >
virtual ~Taker ()=0
 
void Take (ThisImplementation &)
 Swaps. More...
 
void Take (ThisImplementation const &)
 Assigns. More...
 

Private Member Functions

Elementoperator= (Element const &)
 

Detailed Description

template<typename ThisImplementation, typename ThisInterface = Om::Language::Element>
class Om::Language::DefaultElement< ThisImplementation, ThisInterface >

Definition at line 38 of file default_element.hpp.

Constructor & Destructor Documentation

◆ ~DefaultElement()

template<typename ThisImplementation , typename ThisInterface = Om::Language::Element>
virtual Om::Language::DefaultElement< ThisImplementation, ThisInterface >::~DefaultElement ( )
pure virtual

Member Function Documentation

◆ Equals() [1/2]

template<typename ThisImplementation , typename ThisInterface = Om::Language::Element>
virtual bool Om::Language::DefaultElement< ThisImplementation, ThisInterface >::Equals ( Element const &  ) const
virtual

Reimplemented in Om::Language::Null.

◆ Equals() [2/2]

template<typename ThisImplementation , typename ThisInterface = Om::Language::Element>
bool Om::Language::DefaultElement< ThisImplementation, ThisInterface >::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).

◆ GetElementRange() [1/2]

template<typename ThisImplementation , typename ThisInterface = Om::Language::Element>
virtual std::auto_ptr< Om::Source::Source<Element> > Om::Language::DefaultElement< ThisImplementation, ThisInterface >::GetElementRange ( )
virtual

◆ GetElementRange() [2/2]

template<typename ThisImplementation , typename ThisInterface = Om::Language::Element>
virtual std::auto_ptr< Om::Source::Source<Element const> > Om::Language::DefaultElement< ThisImplementation, ThisInterface >::GetElementRange ( ) const
virtual

◆ GiveElements() [1/2]

template<typename ThisImplementation , typename ThisInterface = Om::Language::Element>
virtual void Om::Language::DefaultElement< ThisImplementation, ThisInterface >::GiveElements ( Consumer )
virtual

Reimplemented in Om::Language::Null.

◆ GiveElements() [2/2]

template<typename ThisImplementation , typename ThisInterface = Om::Language::Element>
virtual void Om::Language::DefaultElement< ThisImplementation, ThisInterface >::GiveElements ( Consumer ) const
virtual

Reimplemented in Om::Language::Null.

◆ operator=()

template<typename ThisImplementation , typename ThisInterface = Om::Language::Element>
Element& Om::Language::DefaultElement< ThisImplementation, ThisInterface >::operator= ( Element const &  )
private

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