souffle  2.0.2-371-g6315b36
Data Structures | Public Types | Public Member Functions | Protected Attributes
souffle::interpreter::RelationWrapper Struct Referenceabstract

Wrapper for InterpreterRelation. More...

#include <Relation.h>

Inheritance diagram for souffle::interpreter::RelationWrapper:
Inheritance graph
Collaboration diagram for souffle::interpreter::RelationWrapper:
Collaboration graph

Data Structures

class  Iterator
 The iterator interface. More...
 
class  iterator_base
 A virtualized iterator class that can be used by the Proginterface. More...
 

Public Types

using arity_type = souffle::Relation::arity_type
 
using IndexViewPtr = Own< ViewWrapper >
 

Public Member Functions

virtual Iterator begin () const =0
 
virtual bool contains (const RamDomain *) const =0
 
virtual IndexViewPtr createView (const size_t &) const =0
 Obtains a view on an index of this relation, facilitating hint-supported accesses. More...
 
virtual Iterator end () const =0
 
arity_type getArity () const
 
arity_type getAuxiliaryArity () const
 
virtual Order getIndexOrder (size_t) const =0
 Return the order of an index. More...
 
const std::string & getName () const
 
virtual void insert (const RamDomain *)=0
 
virtual void purge ()=0
 
 RelationWrapper (arity_type arity, arity_type auxiliaryArity, std::string relName)
 
virtual size_t size () const =0
 
virtual ~RelationWrapper ()=default
 

Protected Attributes

arity_type arity
 
arity_type auxiliaryArity
 
std::string relName
 

Detailed Description

Wrapper for InterpreterRelation.

This class unifies the InterpreterRelation template classes. It also defines virtual interfaces for ProgInterface and some virtual helper functions for interpreter execution.

Definition at line 48 of file Relation.h.

Member Typedef Documentation

◆ arity_type

Definition at line 55 of file Relation.h.

◆ IndexViewPtr

Definition at line 141 of file Relation.h.

Constructor & Destructor Documentation

◆ RelationWrapper()

souffle::interpreter::RelationWrapper::RelationWrapper ( arity_type  arity,
arity_type  auxiliaryArity,
std::string  relName 
)
inline

Definition at line 58 of file Relation.h.

58  :
59  virtual ~iterator_base() = default;

◆ ~RelationWrapper()

virtual souffle::interpreter::RelationWrapper::~RelationWrapper ( )
virtualdefault

Member Function Documentation

◆ begin()

virtual Iterator souffle::interpreter::RelationWrapper::begin ( ) const
pure virtual

◆ contains()

virtual bool souffle::interpreter::RelationWrapper::contains ( const RamDomain ) const
pure virtual

◆ createView()

virtual IndexViewPtr souffle::interpreter::RelationWrapper::createView ( const size_t &  ) const
pure virtual

Obtains a view on an index of this relation, facilitating hint-supported accesses.

This function is virtual because view creation require at least one indirect dispatch.

Implemented in souffle::interpreter::Relation< _Arity, Structure >, and souffle::interpreter::Relation< 2, Eqrel >.

◆ end()

virtual Iterator souffle::interpreter::RelationWrapper::end ( ) const
pure virtual

◆ getArity()

arity_type souffle::interpreter::RelationWrapper::getArity ( ) const
inline

Definition at line 131 of file Relation.h.

143  :
144  std::string relName;

◆ getAuxiliaryArity()

arity_type souffle::interpreter::RelationWrapper::getAuxiliaryArity ( ) const
inline

Definition at line 135 of file Relation.h.

143  :
144  std::string relName;

◆ getIndexOrder()

virtual Order souffle::interpreter::RelationWrapper::getIndexOrder ( size_t  ) const
pure virtual

◆ getName()

const std::string& souffle::interpreter::RelationWrapper::getName ( ) const
inline

Definition at line 127 of file Relation.h.

128  :
129  using IndexViewPtr = Own<ViewWrapper>;

◆ insert()

virtual void souffle::interpreter::RelationWrapper::insert ( const RamDomain )
pure virtual

◆ purge()

virtual void souffle::interpreter::RelationWrapper::purge ( )
pure virtual

◆ size()

virtual size_t souffle::interpreter::RelationWrapper::size ( ) const
pure virtual

Field Documentation

◆ arity

arity_type souffle::interpreter::RelationWrapper::arity
protected

Definition at line 158 of file Relation.h.

◆ auxiliaryArity

arity_type souffle::interpreter::RelationWrapper::auxiliaryArity
protected

Definition at line 159 of file Relation.h.

◆ relName

std::string souffle::interpreter::RelationWrapper::relName
protected

The documentation for this struct was generated from the following file:
iterator_base
souffle::interpreter::RelationWrapper::IndexViewPtr
Own< ViewWrapper > IndexViewPtr
Definition: Relation.h:141
souffle::interpreter::RelationWrapper::relName
std::string relName
Definition: Relation.h:156