Leonardus
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
SOcomposite Class Referenceabstract

Composite Semantic Object. More...

#include <so.h>

+ Inheritance diagram for SOcomposite:
+ Collaboration diagram for SOcomposite:

Public Member Functions

virtual size_t dagheight (size_t p_myheigth) const =0
 DAG Height.
 
- Public Member Functions inherited from SOshptr
std::string opequal () const override
 String representation of object for operators '=', 'cvs' and 'stack'.
 
bool equal (const SO *p_other) const override
 Checks if this SO is equal to another SO.
 
 SO ()
 Ctor.
 
 SO (bool p_exec)
 Ctor.
 
 SO (const SO &p_other)
 Copy ctor.
 
 SO (SO &&)=delete
 
- Public Member Functions inherited from SO
 SO ()
 Ctor.
 
 SO (bool p_exec)
 Ctor.
 
 SO (const SO &p_other)
 Copy ctor.
 
virtual ~SO ()=default
 Virtual dtor.
 
 SO (SO &&)=delete
 
SO & operator= (const SO &)=delete
 
SO & operator= (SO &&)=delete
 
bool getExec () const
 Getter for exec_.
 
void setExec (bool p_exec)
 Setter for exec_.
 
virtual size_t getSize () const
 Returns the size of the SO.
 
virtual SO * dup () const =0
 Creates a new instance as copy following the red book definition.
 
virtual SO * clone () const
 Creates a new instance as copy with deep cloning.
 
virtual std::string opequalequal () const
 String representation for operators '==' and 'pstack'.
 
virtual OTCode ot () const =0
 Returns an OTCode.
 
virtual std::string_view type () const =0
 Returns a type name.
 
virtual bool gt (OpError &p_ec, const SO *) const
 Greater than.
 
virtual bool ge (OpError &p_ec, const SO *) const
 Greater or equal.
 
- Public Member Functions inherited from Counter< SO >
 Counter (Counter< SO > &&)=delete
 
Counter< SO > & operator= (const Counter< SO > &)=delete
 
Counter< SO > & operator= (Counter< SO > &&)=delete
 

Static Public Member Functions

static bool otcodeIsComposite (OTCode p_code)
 Checks if an OTCode represents a composite type (A, Ax, D, K).
 
- Static Public Member Functions inherited from Counter< SO >
static size_t getTotalCounter ()
 Static getter for totaly created objects.
 
static size_t getAliveCounter ()
 Static getter for objects alive.
 
static size_t getWatermarkCounter ()
 Static getter for the object counter watermark.
 

Additional Inherited Members

- Protected Member Functions inherited from SOshptr
virtual void * shptr () const =0
 Pointer to the shared object.
 
bool invariant () const noexcept override
 Checks class invariants.
 
- Protected Member Functions inherited from Counter< SO >
 Counter ()
 Ctor.
 
 Counter (const Counter< SO > &)
 Copy ctor.
 
 ~Counter ()
 Dtor.
 
- Protected Member Functions inherited from DbC
 ~DbC ()=default
 Protected dtor.
 

Detailed Description

Composite Semantic Object.

Invariant
inherited from SOshptr
No instantiation. Inherits pure virtual functions from SO and SOshptr.

Member Function Documentation

◆ dagheight()

virtual size_t SOcomposite::dagheight ( size_t  p_myheigth) const
pure virtual

DAG Height.

The composite semantic objects can contain other composite semantic objects.
This creates a directed acyclic graph (DAG) of objects.
dagheight() calculates the height of this DAG starting at this.

Loops will be dedected by an heuristics. We stop the recursion if the heigth
exceeds DET_MAXDAGHEIGHT, a global constant in Leonardus.

Parameters
[in]p_myheigthCall with 0. Used internally for recursion.
Returns
size_t ... The maximum height of the DAG of SOcomposite -or- DET_MAXDAGHEIGHT if there is a loop.

Implemented in SOA, SOD, and SOK.

◆ otcodeIsComposite()

static bool SOcomposite::otcodeIsComposite ( OTCode  p_code)
inlinestatic

Checks if an OTCode represents a composite type (A, Ax, D, K).

Composite types are semantic objects that can contain other semantic objects,

Parameters
[in]p_codeThe OTCode to check.
Returns
bool ... true, if the OTCode represents a composite type, otherwise false.

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