Kryptostack
Public Member Functions | Protected Attributes | List of all members
SO Class Referenceabstract

Semantic Object. More...

#include <so.h>

Inheritance diagram for SO:
Inheritance graph
[legend]
Collaboration diagram for SO:
Collaboration graph
[legend]

Public Member Functions

 SO (bool p_exec=false)
 Ctor.
 
virtual ~SO ()
 Virtual dtor. More...
 
public_accessor bool getExec () const
 Getter for exec_.
 
void setExec (bool p_exec)
 Setter for exec_.
 
virtual size_t getSize () const
 Getter for the number of characters or number of objects. More...
 
virtual public_virtual SOdup () const =0
 Creates a new instance as copy following the PostScript definition. More...
 
virtual SOclone () const
 Creates a new instance as copy with deep cloning. More...
 
virtual string opequal () const =0
 For operators '=' and 'stack'. More...
 
virtual string opequalequal (class Context &) const
 For operators '==' and 'pstack'. More...
 
virtual OTCode ot () const =0
 Returns an OTCode. More...
 
virtual bool equal (const SO *p_other) const =0
 Equality. More...
 
- Public Member Functions inherited from Counter< SO >
 Counter ()
 Ctor.
 

Protected Attributes

bool exec_ = false
 All SOs have executive vs. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Counter< SO >
static int getTotalCounter ()
 Static getter for created objects.
 
static int getAliveCounter ()
 Static getter for objects alive.
 

Detailed Description

Semantic Object.

Invariant
Global Invariants: No Instance. Forced by pure virtual functions.

Constructor & Destructor Documentation

◆ ~SO()

virtual SO::~SO ( )
inlinevirtual

Virtual dtor.

For polymorphic containers.

Member Function Documentation

◆ clone()

virtual SO * SO::clone ( ) const
inlinevirtual

Creates a new instance as copy with deep cloning.

Reimplemented in SOS, SOA, and SOD.

◆ dup()

virtual public_virtual SO * SO::dup ( ) const
pure virtual

Creates a new instance as copy following the PostScript definition.

Implemented in SOM, SO0, SOI, SOB, SOR, SON, SOO, SOS, SOA, and SOD.

◆ equal()

virtual bool SO::equal ( const SO p_other) const
pure virtual

Equality.

Equality means: For SOD, share_ptr<> points to the same object.
For SOA, share_ptr<> points to the same object, but empty arrays are equal nonetheless.
SO0 und SOM are always equal.
For SOO and SOo the function pointer must be the same.
Otherwise the value must be the same, even for SOS with shared_ptr<>.

Returns
bool ... true if the SO's are of the same type and equal

Implemented in SOM, SO0, SOI, SOB, SOR, SON, SOO, SOS, SOA, and SOD.

◆ getSize()

virtual size_t SO::getSize ( ) const
inlinevirtual

Getter for the number of characters or number of objects.

Reimplemented in SON, SOS, SOA, and SOD.

◆ opequal()

virtual string SO::opequal ( ) const
pure virtual

For operators '=' and 'stack'.

Implemented in SOM, SO0, SOI, SOB, SOR, SON, SOO, SOS, SOA, and SOD.

◆ opequalequal()

virtual string SO::opequalequal ( class Context ) const
inlinevirtual

For operators '==' and 'pstack'.

Reimplemented in SOM, SO0, SOS, SOA, and SOD.

◆ ot()

virtual OTCode SO::ot ( ) const
pure virtual

Returns an OTCode.

A "manual" implementation of polymorphism, where C++-polymorphisms fail

Returns
char ... OTCode of the SO

Implemented in SOM, SO0, SOI, SOB, SOR, SON, SOO, SOo, SOS, SOA, and SOD.

Member Data Documentation

◆ exec_

bool SO::exec_ = false
protected

All SOs have executive vs.

literal attribut. Has impact only for SON and SOA.


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