Thrill  0.1
CollapseNode< ValueType > Class Template Referencefinal

Detailed Description

template<typename ValueType>
class thrill::api::CollapseNode< ValueType >

Definition at line 29 of file collapse.hpp.

+ Inheritance diagram for CollapseNode< ValueType >:
+ Collaboration diagram for CollapseNode< ValueType >:

#include <collapse.hpp>

Public Types

using Super = DIANode< ValueType >
 
- Public Types inherited from DIANode< ValueType >
using Callback = tlx::delegate< void(const ValueType &)>
 
- Public Types inherited from DIABase
using DIABasePtr = tlx::CountingPtr< DIABase >
 

Public Member Functions

template<typename ParentDIA >
 CollapseNode (const ParentDIA &parent)
 Constructor for a LOpNode. More...
 
size_t consume_counter () const final
 Returns consume_counter_. More...
 
void DecConsumeCounter (size_t consume) final
 
void Execute () final
 Virtual execution method. Triggers actual computation in sub-classes. More...
 
bool ForwardDataOnly () const final
 A CollapseNode cannot be executed, it never contains any data. More...
 
void IncConsumeCounter (size_t consume) final
 
bool OnPreOpFile (const data::File &file, size_t) final
 Receive a whole data::File of ValueType, but only if our stack is empty. More...
 
void PushData (bool) final
 Virtual method for pushing data. Triggers actual pushing in sub-classes. More...
 
bool RequireParentPushData (size_t) const final
 
void SetConsumeCounter (size_t consume) final
 
void StartPreOp (size_t) final
 Virtual method for preparing start of PushData. More...
 
void StopPreOp (size_t) final
 Virtual method for preparing end of PushData. More...
 
- Public Member Functions inherited from DIANode< ValueType >
 DIANode (Context &ctx, const char *label, const std::initializer_list< size_t > &parent_ids, const std::initializer_list< DIABasePtr > &parents)
 Constructor for a DIANode, which sets references to the parent nodes. More...
 
 DIANode (Context &ctx, const char *label, std::vector< size_t > &&parent_ids, std::vector< DIABasePtr > &&parents)
 Constructor for a DIANode, which sets references to the parent nodes. More...
 
virtual void AddChild (DIABase *node, const Callback &callback=Callback(), size_t parent_index=0)
 Enables children to push their "folded" function chains to their parent. More...
 
std::vector< DIABase * > children () const override
 Returns the children of this DIABase. More...
 
void PushFile (data::File &file, bool consume) const
 
void PushItem (const ValueType &item) const
 Method for derived classes to Push a single item to all children. More...
 
void RemoveAllChildren () override
 
void RemoveChild (DIABase *node) override
 
void RunPushData () override
 
- Public Member Functions inherited from DIABase
 DIABase (Context &ctx, const char *label, const std::initializer_list< size_t > &parent_ids, const std::initializer_list< DIABasePtr > &parents)
 The constructor for a DIABase. More...
 
 DIABase (Context &ctx, const char *label, std::vector< size_t > &&parent_ids, std::vector< DIABasePtr > &&parents)
 The constructor for a DIABase. More...
 
 DIABase (const DIABase &)=delete
 non-copyable: delete copy-constructor More...
 
 DIABase (DIABase &&)=default
 move-constructor: default More...
 
virtual ~DIABase ()
 Virtual destructor for a DIABase. More...
 
Contextcontext ()
 Returns the api::Context of this DIABase. More...
 
const size_t & dia_id () const
 return unique id of DIANode subclass as stored by StatsNode More...
 
const char * label () const
 return label() of DIANode subclass as stored by StatsNode More...
 
mem::Managermem_manager ()
 Return the Context's memory manager. More...
 
DIABaseoperator= (const DIABase &)=delete
 non-copyable: delete assignment operator More...
 
DIABaseoperator= (DIABase &&)=default
 move-assignment operator: default More...
 
std::vector< size_t > parent_ids () const
 Returns the parents of this DIABase. More...
 
const std::vector< DIABasePtr > & parents () const
 Returns the parents of this DIABase. More...
 
void RemoveParent (DIABase *p)
 Remove a parent. More...
 
void RunScope ()
 
void set_mem_limit (const DIAMemUse &mem_limit)
 
void set_state (const DIAState &state)
 
DIAState state () const
 
virtual DIAMemUse PreOpMemUse ()
 Amount of RAM used by PreOp after StartPreOp() More...
 
virtual DIAMemUse ExecuteMemUse ()
 Amount of RAM used by Execute() More...
 
virtual DIAMemUse PushDataMemUse ()
 Amount of RAM used by PushData() More...
 
virtual void Dispose ()
 Virtual clear method. Triggers actual disposing in sub-classes. More...
 
- Public Member Functions inherited from ReferenceCounter
 ReferenceCounter () noexcept
 new objects have zero reference count More...
 
 ReferenceCounter (const ReferenceCounter &) noexcept
 coping still creates a new object with zero reference count More...
 
 ~ReferenceCounter ()
 
bool dec_reference () const noexcept
 Call whenever resetting (i.e. More...
 
void inc_reference () const noexcept
 Call whenever setting a pointer to the object. More...
 
ReferenceCounteroperator= (const ReferenceCounter &) noexcept
 assignment operator, leaves pointers unchanged More...
 
size_t reference_count () const noexcept
 Return the number of references to this object (for debugging) More...
 
bool unique () const noexcept
 Test if the ReferenceCounter is referenced by only one CountingPtr. More...
 

Private Attributes

const bool parent_stack_empty_
 Whether the parent stack is empty. More...
 

Additional Inherited Members

- Public Attributes inherited from DIABase
common::JsonLogger logger_
 
- Static Public Attributes inherited from DIABase
static constexpr size_t kNeverConsume = static_cast<size_t>(-1)
 Never full consume. More...
 
- Protected Attributes inherited from DIANode< ValueType >
std::vector< Childchildren_
 Callback functions from the child nodes. More...
 
- Protected Attributes inherited from DIABase
Contextcontext_
 associated Context More...
 
const size_t dia_id_
 DIA serial id. More...
 
const char *const label_
 DOp node static label. More...
 
DIAState state_ = DIAState::NEW
 State of the DIANode. State is NEW on creation. More...
 
std::vector< DIABasePtrparents_
 Parents of this DIABase. More...
 
DIAMemUse mem_limit_ = 0
 
size_t consume_counter_ = 1
 

Member Typedef Documentation

◆ Super

using Super = DIANode<ValueType>

Definition at line 32 of file collapse.hpp.

Constructor & Destructor Documentation

◆ CollapseNode()

CollapseNode ( const ParentDIA &  parent)
inlineexplicit

Constructor for a LOpNode.

Sets the Context, parents and stack.

Definition at line 39 of file collapse.hpp.

References CollapseNode< ValueType >::parent_stack_empty_, and DIANode< ValueType >::PushItem().

Member Function Documentation

◆ consume_counter()

size_t consume_counter ( ) const
inlinefinalvirtual

Returns consume_counter_.

Reimplemented from DIABase.

Definition at line 86 of file collapse.hpp.

References DIABase::kNeverConsume, min(), and DIABase::parents_.

◆ DecConsumeCounter()

void DecConsumeCounter ( size_t  counter)
inlinefinalvirtual

Virtual SetConsume flag which is called by the user via .Keep() or .Consume() to set consumption.

Reimplemented from DIABase.

Definition at line 102 of file collapse.hpp.

References DIABase::parents_.

◆ Execute()

void Execute ( )
inlinefinalvirtual

Virtual execution method. Triggers actual computation in sub-classes.

Implements DIABase.

Definition at line 55 of file collapse.hpp.

◆ ForwardDataOnly()

bool ForwardDataOnly ( ) const
inlinefinalvirtual

A CollapseNode cannot be executed, it never contains any data.

Reimplemented from DIABase.

Definition at line 50 of file collapse.hpp.

◆ IncConsumeCounter()

void IncConsumeCounter ( size_t  counter)
inlinefinalvirtual

Virtual SetConsume flag which is called by the user via .Keep() or .Consume() to set consumption.

Reimplemented from DIABase.

Definition at line 95 of file collapse.hpp.

References DIABase::parents_.

◆ OnPreOpFile()

bool OnPreOpFile ( const data::File file,
size_t   
)
inlinefinalvirtual

Receive a whole data::File of ValueType, but only if our stack is empty.

Reimplemented from DIABase.

Definition at line 63 of file collapse.hpp.

References DIABase::context_, File::Copy(), LOGC, Context::my_rank(), CollapseNode< ValueType >::parent_stack_empty_, and DIANode< ValueType >::PushFile().

◆ PushData()

void PushData ( bool  consume)
inlinefinalvirtual

Virtual method for pushing data. Triggers actual pushing in sub-classes.

Implements DIABase.

Definition at line 84 of file collapse.hpp.

◆ RequireParentPushData()

bool RequireParentPushData ( size_t  ) const
inlinefinalvirtual

Virtual method used by StageBuilder to request information whether it must call PushData on the parent of a CollapseNode or UnionNode to correctly deliver data.

Reimplemented from DIABase.

Definition at line 52 of file collapse.hpp.

◆ SetConsumeCounter()

void SetConsumeCounter ( size_t  counter)
inlinefinalvirtual

Virtual SetConsume flag which is called by the user via .Keep() or .Consume() to set consumption.

Reimplemented from DIABase.

Definition at line 109 of file collapse.hpp.

References DIABase::parents_.

◆ StartPreOp()

void StartPreOp ( size_t  )
inlinefinalvirtual

Virtual method for preparing start of PushData.

Reimplemented from DIABase.

Definition at line 57 of file collapse.hpp.

References DIANode< ValueType >::children_.

◆ StopPreOp()

void StopPreOp ( size_t  )
inlinefinalvirtual

Virtual method for preparing end of PushData.

Reimplemented from DIABase.

Definition at line 79 of file collapse.hpp.

References DIANode< ValueType >::children_.

Member Data Documentation

◆ parent_stack_empty_

const bool parent_stack_empty_
private

Whether the parent stack is empty.

Definition at line 118 of file collapse.hpp.

Referenced by CollapseNode< ValueType >::CollapseNode(), and CollapseNode< ValueType >::OnPreOpFile().


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