souffle  2.0.2-371-g6315b36
Public Member Functions | Protected Member Functions | Protected Attributes
souffle::ram::TupleOperation Class Referenceabstract

Abstract class for relation searches and lookups. More...

#include <TupleOperation.h>

Inheritance diagram for souffle::ram::TupleOperation:
Inheritance graph
Collaboration diagram for souffle::ram::TupleOperation:
Collaboration graph

Public Member Functions

TupleOperationclone () const override=0
 Create a clone (i.e. More...
 
std::vector< const Node * > getChildNodes () const override
 Obtain list of all embedded child nodes. More...
 
int getTupleId () const
 Get identifier. More...
 
void setTupleId (int id)
 Set identifier. More...
 
 TupleOperation (int ident, Own< Operation > nested, std::string profileText="")
 
- Public Member Functions inherited from souffle::ram::NestedOperation
void apply (const NodeMapper &map) override
 Apply the mapper to all child nodes. More...
 
OperationgetOperation () const
 Get nested operation. More...
 
const std::string & getProfileText () const
 Get profile text. More...
 
 NestedOperation (Own< Operation > nested, std::string profileText="")
 
- Public Member Functions inherited from souffle::ram::Node
bool operator!= (const Node &other) const
 Inequality check for two RAM nodes. More...
 
bool operator== (const Node &other) const
 Equivalence check for two RAM nodes. More...
 
virtual void rewrite (const Node *oldNode, Own< Node > newNode)
 Rewrite a child node. More...
 
virtual ~Node ()=default
 

Protected Member Functions

bool equal (const Node &node) const override
 Equality check for two RAM nodes. More...
 
- Protected Member Functions inherited from souffle::ram::NestedOperation
void print (std::ostream &os, int tabpos) const override
 Pretty print with indentation. More...
 
- Protected Member Functions inherited from souffle::ram::Operation
void print (std::ostream &os) const override
 Print RAM node. More...
 

Protected Attributes

int identifier
 Identifier for the tuple, corresponding to its position in the loop nest. More...
 
- Protected Attributes inherited from souffle::ram::NestedOperation
Own< OperationnestedOperation
 Nested operation. More...
 
const std::string profileText
 Text used by the profiler. More...
 

Additional Inherited Members

- Static Protected Member Functions inherited from souffle::ram::Operation
static void print (const Operation *operation, std::ostream &os, int tabpos)
 Pretty print jump-bed. More...
 

Detailed Description

Abstract class for relation searches and lookups.

Definition at line 35 of file TupleOperation.h.

Constructor & Destructor Documentation

◆ TupleOperation()

souffle::ram::TupleOperation::TupleOperation ( int  ident,
Own< Operation nested,
std::string  profileText = "" 
)
inline

Definition at line 37 of file TupleOperation.h.

39  {

References identifier.

Member Function Documentation

◆ clone()

TupleOperation* souffle::ram::TupleOperation::clone ( ) const
overridepure virtual

◆ equal()

bool souffle::ram::TupleOperation::equal ( const Node ) const
inlineoverrideprotectedvirtual

Equality check for two RAM nodes.

Default action is that nothing needs to be checked.

Reimplemented from souffle::ram::NestedOperation.

Reimplemented in souffle::ram::UnpackRecord.

Definition at line 57 of file TupleOperation.h.

Referenced by souffle::ram::RelationOperation::getRelation().

◆ getChildNodes()

std::vector<const Node*> souffle::ram::TupleOperation::getChildNodes ( ) const
inlineoverridevirtual

Obtain list of all embedded child nodes.

Reimplemented from souffle::ram::NestedOperation.

Reimplemented in souffle::ram::UnpackRecord.

Definition at line 52 of file TupleOperation.h.

52  :
53  bool equal(const Node& node) const override {
54  const auto& other = static_cast<const TupleOperation&>(node);

References souffle::ram::NestedOperation::equal(), and identifier.

Referenced by souffle::ram::Aggregate::Aggregate(), souffle::ram::NestedIntrinsicOperator::getArguments(), souffle::ram::UnpackRecord::getArity(), and souffle::ram::IndexOperation::getRangePattern().

Here is the call graph for this function:

◆ getTupleId()

int souffle::ram::TupleOperation::getTupleId ( ) const
inline

◆ setTupleId()

void souffle::ram::TupleOperation::setTupleId ( int  id)
inline

Set identifier.

Definition at line 48 of file TupleOperation.h.

48  {
50  }

References souffle::ram::NestedOperation::getChildNodes().

Referenced by souffle::ram::transform::TupleIdTransformer::reorderOperations().

Here is the call graph for this function:

Field Documentation

◆ identifier

int souffle::ram::TupleOperation::identifier
protected

Identifier for the tuple, corresponding to its position in the loop nest.

Definition at line 66 of file TupleOperation.h.

Referenced by getChildNodes(), getTupleId(), souffle::ram::ParallelAggregate::ParallelAggregate(), and TupleOperation().


The documentation for this class was generated from the following file:
souffle::ram::TupleOperation::TupleOperation
TupleOperation(int ident, Own< Operation > nested, std::string profileText="")
Definition: TupleOperation.h:37
souffle::ram::TupleOperation::equal
bool equal(const Node &node) const override
Equality check for two RAM nodes.
Definition: TupleOperation.h:57
souffle::ram::TupleOperation::identifier
int identifier
Identifier for the tuple, corresponding to its position in the loop nest.
Definition: TupleOperation.h:66
id
void id(std::string col)
Definition: Tui.h:1124
souffle::ram::NestedOperation::getChildNodes
std::vector< const Node * > getChildNodes() const override
Obtain list of all embedded child nodes.
Definition: NestedOperation.h:71