Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

SExpressionIndirectTemplate< Tt > Class Template Reference

#include <extvar.hpp>

Inheritance diagram for SExpressionIndirectTemplate< Tt >:

Inheritance graph
[legend]
Collaboration diagram for SExpressionIndirectTemplate< Tt >:

Collaboration graph
[legend]
List of all members.

Detailed Description

template<class Tt>
class SExpressionIndirectTemplate< Tt >

SETF agent for an extern variable of a particular type.

Definition at line 63 of file extvar.hpp.

Public Member Functions

 SExpressionIndirectTemplate (Tt &a)
 The constructor.
virtual SReference Value () const
 Converts whatever variable value to SReference.
virtual void Setf (const SReference &val)
 Perform SETF on the variable.
template<>
void Setf (const SReference &val)
 Perform SETF on the variable.
template<>
void Setf (const SReference &val)
 Perform SETF on the variable.
template<>
void Setf (const SReference &val)
 Perform SETF on the variable.
template<>
void Setf (const SReference &val)
 Perform SETF on the variable.
template<>
void Setf (const SReference &val)
 Perform SETF on the variable.
template<>
void Setf (const SReference &val)
 Perform SETF on the variable.
template<>
void Setf (const SReference &val)
 Perform SETF on the variable.
template<>
void Setf (const SReference &val)
 Perform SETF on the variable.
template<>
void Setf (const SReference &val)
 Perform SETF on the variable.
template<>
void Setf (const SReference &val)
 Perform SETF on the variable.
template<>
void Setf (const SReference &val)
 Perform SETF on the variable.
template<>
void Setf (const SReference &val)
 Perform SETF on the variable.
template<>
void Setf (const SReference &val)
 Perform SETF on the variable.
template<>
void Setf (const SReference &val)
 Perform SETF on the variable.
template<>
void Setf (const SReference &val)
 Perform SETF on the variable.
virtual SString TextRepresentation () const
 Text representation of the S-expression.
const IntelibTypeIdTermType () const
 Actual S-expression type.
bool IsChangeable () const
 Can it be changed during the lifetime of the object?
virtual SExpressionClone () const
 Clone a changeable object.
virtual bool SpecificEql (const SExpression *) const
 Are the two objects EQL (while not EQ).

Static Public Attributes

static IntelibTypeId TypeId
 Identifier for the set of all possible S-expressions.

Protected Member Functions

virtual void * Addr () const
 Get the address of the variable (for TextRepresentation()).
 ~SExpressionIndirectTemplate ()
bool CanDie ()
 Is it OK to delete the object now?


Constructor & Destructor Documentation

template<class Tt>
SExpressionIndirectTemplate< Tt >::SExpressionIndirectTemplate Tt &  a  ) 
 

The constructor.

Definition at line 67 of file extvar.hpp.

template<class Tt>
SExpressionIndirectTemplate< Tt >::~SExpressionIndirectTemplate  )  [protected]
 

Definition at line 73 of file extvar.hpp.


Member Function Documentation

template<class Tt>
virtual SReference SExpressionIndirectTemplate< Tt >::Value  )  const [virtual]
 

Converts whatever variable value to SReference.

Implements SExpressionIndirect.

Definition at line 69 of file extvar.hpp.

template<class Tt>
virtual void SExpressionIndirectTemplate< Tt >::Setf const SReference val  )  [virtual]
 

Perform SETF on the variable.

Implements SExpressionIndirect.

template<class Tt>
virtual void* SExpressionIndirectTemplate< Tt >::Addr  )  const [protected, virtual]
 

Get the address of the variable (for TextRepresentation()).

Implements SExpressionIndirect.

Definition at line 72 of file extvar.hpp.

template<>
void SExpressionIndirectTemplate< signed char >::Setf const SReference val  )  [virtual]
 

Perform SETF on the variable.

Implements SExpressionIndirect.

Definition at line 78 of file extvar.hpp.

References SReference::GetInt().

template<>
void SExpressionIndirectTemplate< unsigned char >::Setf const SReference val  )  [virtual]
 

Perform SETF on the variable.

Implements SExpressionIndirect.

Definition at line 81 of file extvar.hpp.

References SReference::GetInt().

template<>
void SExpressionIndirectTemplate< short >::Setf const SReference val  )  [virtual]
 

Perform SETF on the variable.

Implements SExpressionIndirect.

Definition at line 84 of file extvar.hpp.

References SReference::GetInt().

template<>
void SExpressionIndirectTemplate< unsigned short >::Setf const SReference val  )  [virtual]
 

Perform SETF on the variable.

Implements SExpressionIndirect.

Definition at line 87 of file extvar.hpp.

References SReference::GetInt().

template<>
void SExpressionIndirectTemplate< int >::Setf const SReference val  )  [virtual]
 

Perform SETF on the variable.

Implements SExpressionIndirect.

Definition at line 90 of file extvar.hpp.

References SReference::GetInt().

template<>
void SExpressionIndirectTemplate< unsigned int >::Setf const SReference val  )  [virtual]
 

Perform SETF on the variable.

Implements SExpressionIndirect.

Definition at line 93 of file extvar.hpp.

References SReference::GetInt().

template<>
void SExpressionIndirectTemplate< long >::Setf const SReference val  )  [virtual]
 

Perform SETF on the variable.

Implements SExpressionIndirect.

Definition at line 96 of file extvar.hpp.

References SReference::GetInt().

template<>
void SExpressionIndirectTemplate< unsigned long >::Setf const SReference val  )  [virtual]
 

Perform SETF on the variable.

Implements SExpressionIndirect.

Definition at line 99 of file extvar.hpp.

References SReference::GetInt().

template<>
void SExpressionIndirectTemplate< long long >::Setf const SReference val  )  [virtual]
 

Perform SETF on the variable.

Implements SExpressionIndirect.

Definition at line 102 of file extvar.hpp.

References SReference::GetInt().

template<>
void SExpressionIndirectTemplate< unsigned long long >::Setf const SReference val  )  [virtual]
 

Perform SETF on the variable.

Implements SExpressionIndirect.

Definition at line 105 of file extvar.hpp.

References SReference::GetInt().

template<>
void SExpressionIndirectTemplate< float >::Setf const SReference val  )  [virtual]
 

Perform SETF on the variable.

Implements SExpressionIndirect.

Definition at line 110 of file extvar.hpp.

References SReference::GetFloat().

template<>
void SExpressionIndirectTemplate< double >::Setf const SReference val  )  [virtual]
 

Perform SETF on the variable.

Implements SExpressionIndirect.

Definition at line 113 of file extvar.hpp.

References SReference::GetFloat().

template<>
void SExpressionIndirectTemplate< long double >::Setf const SReference val  )  [virtual]
 

Perform SETF on the variable.

Implements SExpressionIndirect.

Definition at line 116 of file extvar.hpp.

References SReference::GetFloat().

template<>
void SExpressionIndirectTemplate< SString >::Setf const SReference val  )  [virtual]
 

Perform SETF on the variable.

Implements SExpressionIndirect.

Definition at line 120 of file extvar.hpp.

References SReference::GetString().

template<>
void SExpressionIndirectTemplate< SReference >::Setf const SReference val  )  [virtual]
 

Perform SETF on the variable.

Implements SExpressionIndirect.

Definition at line 124 of file extvar.hpp.

virtual SString SExpressionIndirect::TextRepresentation  )  const [virtual, inherited]
 

Text representation of the S-expression.

Returns the text string which represents the given S-expression as for real Lisp (for example, (25 36 49))

Implements SExpression.

const IntelibTypeId& SExpression::TermType  )  const [inherited]
 

Actual S-expression type.

Definition at line 195 of file sexpress.hpp.

Referenced by SReference::DynamicCastGetPtr(), SchReference::IsEql(), LReference::IsEql(), SReference::SimpleCastGetPtr(), SchReference::TextRepresentation(), and LReference::TextRepresentation().

bool SExpression::IsChangeable  )  const [inherited]
 

Can it be changed during the lifetime of the object?

Definition at line 198 of file sexpress.hpp.

References IntelibTypeId::IsChangeable().

virtual SExpression* SExpression::Clone  )  const [virtual, inherited]
 

Clone a changeable object.

The method should return the pointer created with new

Note:
It can (and should) return null pointer for non-changeables
Warning:
This method will hang your program being called for a looped data structure, including looped lists, a hash table which references a list in which it is a member, etc.

If you create a changeable S-expression, you MUST make sure this method duplicates your object in such a way that nothing is shared between the old and new objects, that is, changing the new object can not in any way change the old object.

Reimplemented in SExpressionBacklink, SExpressionCons, SExpressionHashTable, SExpressionRawBuffer, and SExpressionVector.

Definition at line 214 of file sexpress.hpp.

virtual bool SExpression::SpecificEql const SExpression  )  const [virtual, inherited]
 

Are the two objects EQL (while not EQ).

This function is overriden by those SExpressions able to be EQL while being not EQ.

Warning:
It is not demanded that this function return true if it's arguments are the same SExpression (that is, they're EQ). It is only called by the EQL predicate implementation when it has been checked that the operands are not the same object.

Reimplemented in SExpressionInt, SExpressionFloat, SExpressionChar, and SExpressionString.

Definition at line 235 of file sexpress.hpp.

Referenced by SchReference::IsEql(), and LReference::IsEql().

bool GarbageSafe::CanDie  )  [protected, inherited]
 

Is it OK to delete the object now?

Our children have no access to the private attribute RefCount and should never need it except when checking if the destruction is not an error. This solves the problem.

Definition at line 53 of file refcount.hpp.


Member Data Documentation

IntelibTypeId SExpressionSetfAgent::TypeId [static, inherited]
 

Identifier for the set of all possible S-expressions.

Note:
It never can be the value of term_type_id because SExpression is an abstract class. SExpression::TypeId is used for unification, to identify the whole world of S-expressions.

IntelibTypeId::IsSubtypeOf(SExpression::TypeId) is true for all objects of IntelibTypeId class. Guess why.

Reimplemented from SExpression.

Referenced by SExpressionSetfAgent::SExpressionSetfAgent().


The documentation for this class was generated from the following file:
Generated on Tue Dec 18 00:41:19 2007 for InteLib by  doxygen 1.4.1