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

SExpressionInt Class Reference

#include <sexpress.hpp>

Inheritance diagram for SExpressionInt:

Inheritance graph
[legend]
Collaboration diagram for SExpressionInt:

Collaboration graph
[legend]
List of all members.

Detailed Description

Integer S-expression.

The class reresents an S-expression of an integer number. The actual number has the type intelib_integer_t which must be short, int, long or long long. Using unsigned integers is not recommended.

Definition at line 255 of file sexpress.hpp.

Public Member Functions

 SExpressionInt ()
 SExpressionInt (char d)
 SExpressionInt (short int d)
 SExpressionInt (int d)
 SExpressionInt (long int d)
 SExpressionInt (long long int d)
 SExpressionInt (unsigned char d)
 SExpressionInt (unsigned short int d)
 SExpressionInt (unsigned int d)
 SExpressionInt (unsigned long int d)
 SExpressionInt (unsigned long long int d)
intelib_integer_t GetValue () const
virtual SString TextRepresentation () const
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.

Static Public Attributes

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

Protected Member Functions

virtual ~SExpressionInt ()
virtual bool SpecificEql (const SExpression *other) const
 Are the two objects EQL (while not EQ).
bool CanDie ()
 Is it OK to delete the object now?


Constructor & Destructor Documentation

SExpressionInt::SExpressionInt  ) 
 

Definition at line 259 of file sexpress.hpp.

References TypeId.

SExpressionInt::SExpressionInt char  d  ) 
 

Definition at line 260 of file sexpress.hpp.

References TypeId.

SExpressionInt::SExpressionInt short int  d  ) 
 

Definition at line 261 of file sexpress.hpp.

References TypeId.

SExpressionInt::SExpressionInt int  d  ) 
 

Definition at line 262 of file sexpress.hpp.

References TypeId.

SExpressionInt::SExpressionInt long int  d  ) 
 

Definition at line 263 of file sexpress.hpp.

References TypeId.

SExpressionInt::SExpressionInt long long int  d  ) 
 

Definition at line 264 of file sexpress.hpp.

References TypeId.

SExpressionInt::SExpressionInt unsigned char  d  ) 
 

Definition at line 265 of file sexpress.hpp.

References TypeId.

SExpressionInt::SExpressionInt unsigned short int  d  ) 
 

Definition at line 266 of file sexpress.hpp.

References TypeId.

SExpressionInt::SExpressionInt unsigned int  d  ) 
 

Definition at line 267 of file sexpress.hpp.

References TypeId.

SExpressionInt::SExpressionInt unsigned long int  d  ) 
 

Definition at line 268 of file sexpress.hpp.

References TypeId.

SExpressionInt::SExpressionInt unsigned long long int  d  ) 
 

Definition at line 269 of file sexpress.hpp.

References TypeId.

virtual SExpressionInt::~SExpressionInt  )  [protected, virtual]
 

Definition at line 282 of file sexpress.hpp.


Member Function Documentation

intelib_integer_t SExpressionInt::GetValue  )  const
 

Definition at line 272 of file sexpress.hpp.

virtual SString SExpressionInt::TextRepresentation  )  const [virtual]
 

INTELIB_INTEGER_FORMAT controls how the integer is converted to text

Implements SExpression.

virtual bool SExpressionInt::SpecificEql const SExpression other  )  const [protected, virtual]
 

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 from 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.

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 SExpressionInt::TypeId [static]
 

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 SExpressionInt().


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