OmniSciDB  c1a53651b2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RexRef Class Reference

#include <RelAlgDag.h>

+ Inheritance diagram for RexRef:
+ Collaboration diagram for RexRef:

Public Member Functions

 RexRef ()
 
 RexRef (const size_t index)
 
size_t getIndex () const
 
std::string toString (RelRexToStringConfig config=RelRexToStringConfig::defaults()) const override
 
size_t toHash () const override
 
std::unique_ptr< RexRefdeepCopy () const
 
- Public Member Functions inherited from Rex
virtual ~Rex ()
 

Private Attributes

size_t index_
 

Friends

struct RelAlgDagSerializer
 

Additional Inherited Members

- Protected Attributes inherited from Rex
std::optional< size_t > hash_
 

Detailed Description

Definition at line 745 of file RelAlgDag.h.

Constructor & Destructor Documentation

RexRef::RexRef ( )
inline

Definition at line 748 of file RelAlgDag.h.

Referenced by toHash().

748 : index_{0} {}
size_t index_
Definition: RelAlgDag.h:770

+ Here is the caller graph for this function:

RexRef::RexRef ( const size_t  index)
inline

Definition at line 750 of file RelAlgDag.h.

750 : index_(index) {}
size_t index_
Definition: RelAlgDag.h:770

Member Function Documentation

std::unique_ptr<RexRef> RexRef::deepCopy ( ) const
inline

Definition at line 767 of file RelAlgDag.h.

References index_.

Referenced by RexDeepCopyVisitor::visitRef().

767 { return std::make_unique<RexRef>(index_); }
size_t index_
Definition: RelAlgDag.h:770

+ Here is the caller graph for this function:

size_t RexRef::getIndex ( ) const
inline

Definition at line 752 of file RelAlgDag.h.

References index_.

Referenced by anonymous_namespace{RelAlgExecutor.cpp}::translate_targets().

752 { return index_; }
size_t index_
Definition: RelAlgDag.h:770

+ Here is the caller graph for this function:

size_t RexRef::toHash ( ) const
inlineoverridevirtual

Implements Rex.

Definition at line 759 of file RelAlgDag.h.

References Rex::hash_, index_, and RexRef().

759  {
760  if (!hash_) {
761  hash_ = typeid(RexRef).hash_code();
762  boost::hash_combine(*hash_, index_);
763  }
764  return *hash_;
765  }
size_t index_
Definition: RelAlgDag.h:770
std::optional< size_t > hash_
Definition: RelAlgDag.h:62
RexRef()
Definition: RelAlgDag.h:748

+ Here is the call graph for this function:

std::string RexRef::toString ( RelRexToStringConfig  config = RelRexToStringConfig::defaults()) const
inlineoverridevirtual

Implements Rex.

Definition at line 754 of file RelAlgDag.h.

References cat(), index_, to_string(), and typeName().

755  {
756  return cat(::typeName(this), "(", std::to_string(index_), ")");
757  }
std::string cat(Ts &&...args)
std::string to_string(char const *&&v)
size_t index_
Definition: RelAlgDag.h:770
std::string typeName(const T *v)
Definition: toString.h:103

+ Here is the call graph for this function:

Friends And Related Function Documentation

friend struct RelAlgDagSerializer
friend

Definition at line 772 of file RelAlgDag.h.

Member Data Documentation

size_t RexRef::index_
private

Definition at line 770 of file RelAlgDag.h.

Referenced by deepCopy(), getIndex(), toHash(), and toString().


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