Thrill  0.1
BaseWindowNode< ValueType, Input, WindowFunction, PartialWindowFunction > Class Template Reference

Detailed Description

template<typename ValueType, typename Input, typename WindowFunction, typename PartialWindowFunction>
class thrill::api::BaseWindowNode< ValueType, Input, WindowFunction, PartialWindowFunction >

Definition at line 32 of file window.hpp.

+ Inheritance diagram for BaseWindowNode< ValueType, Input, WindowFunction, PartialWindowFunction >:
+ Collaboration diagram for BaseWindowNode< ValueType, Input, WindowFunction, PartialWindowFunction >:

#include <window.hpp>

Public Member Functions

template<typename ParentDIA >
 BaseWindowNode (const ParentDIA &parent, const char *label, size_t window_size, const WindowFunction &window_function, const PartialWindowFunction &partial_window_function)
 
void Dispose () final
 Virtual clear method. Triggers actual disposing in sub-classes. More...
 
bool OnPreOpFile (const data::File &file, size_t) final
 
void PreOp (const Input &input)
 PreOp: keep last k - 1 items (local window) and store items. More...
 
DIAMemUse PreOpMemUse () final
 Amount of RAM used by PreOp after StartPreOp() More...
 
DIAMemUse PushDataMemUse () final
 Amount of RAM used by PushData() More...
 
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 DOpNode< ValueType >
 DOpNode (Context &ctx, const char *label, const std::initializer_list< size_t > &parent_ids, const std::initializer_list< DIABasePtr > &parents)
 Constructor for a DOpNode, which sets references to the parent nodes. More...
 
 DOpNode (Context &ctx, const char *label, std::vector< size_t > &&parent_ids, std::vector< DIABasePtr > &&parents)
 Constructor for a DOpNode, which sets references to the parent nodes. 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...
 
virtual size_t consume_counter () const
 Returns consume_counter_. More...
 
Contextcontext ()
 Returns the api::Context of this DIABase. More...
 
virtual void DecConsumeCounter (size_t counter)
 
const size_t & dia_id () const
 return unique id of DIANode subclass as stored by StatsNode More...
 
virtual bool ForwardDataOnly () const
 
virtual void IncConsumeCounter (size_t counter)
 
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...
 
virtual bool RequireParentPushData (size_t) const
 
void RunScope ()
 
void set_mem_limit (const DIAMemUse &mem_limit)
 
void set_state (const DIAState &state)
 
virtual void SetConsumeCounter (size_t counter)
 
DIAState state () const
 
virtual DIAMemUse ExecuteMemUse ()
 Amount of RAM used by Execute() More...
 
virtual void Execute ()=0
 Virtual execution method. Triggers actual computation in sub-classes. More...
 
virtual void PushData (bool consume)=0
 Virtual method for pushing data. Triggers actual pushing 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...
 

Protected Types

using RingBuffer = common::RingBuffer< Input >
 RingBuffer used and passed to user-defined function. More...
 
using Super = DOpNode< ValueType >
 

Protected Attributes

data::File file_ { context_.GetFile(this) }
 Local data file. More...
 
size_t first_rank_
 rank of our first element in file_ More...
 
const bool parent_stack_empty_
 Whether the parent stack is empty. More...
 
PartialWindowFunction partial_window_function_
 The window function which is applied to the last < k elements. More...
 
RingBuffer window_
 cache the last k - 1 items for transmission More...
 
WindowFunction window_function_
 The window function which is applied to k elements. More...
 
size_t window_size_
 Size k of the window. More...
 
data::File::Writer writer_ { file_.GetWriter() }
 Data writer to local file (only active in PreOp). 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
 

Static Protected Attributes

static constexpr bool debug = false
 

Additional Inherited Members

- Public Types inherited from DOpNode< ValueType >
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 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...
 

Member Typedef Documentation

◆ RingBuffer

using RingBuffer = common::RingBuffer<Input>
protected

RingBuffer used and passed to user-defined function.

Definition at line 41 of file window.hpp.

◆ Super

using Super = DOpNode<ValueType>
protected

Definition at line 37 of file window.hpp.

Constructor & Destructor Documentation

◆ BaseWindowNode()

Member Function Documentation

◆ Dispose()

void Dispose ( )
inlinefinalvirtual

◆ OnPreOpFile()

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

◆ PreOp()

◆ PreOpMemUse()

DIAMemUse PreOpMemUse ( )
inlinefinalvirtual

Amount of RAM used by PreOp after StartPreOp()

Reimplemented from DIABase.

Definition at line 63 of file window.hpp.

References BaseWindowNode< ValueType, Input, WindowFunction, PartialWindowFunction >::window_size_.

◆ PushDataMemUse()

DIAMemUse PushDataMemUse ( )
inlinefinalvirtual

Amount of RAM used by PushData()

Reimplemented from DIABase.

Definition at line 105 of file window.hpp.

References BaseWindowNode< ValueType, Input, WindowFunction, PartialWindowFunction >::window_size_.

◆ StartPreOp()

void StartPreOp ( size_t  )
inlinefinalvirtual

◆ StopPreOp()

void StopPreOp ( size_t  )
inlinefinalvirtual

Virtual method for preparing end of PushData.

Reimplemented from DIABase.

Definition at line 101 of file window.hpp.

References BlockWriter< BlockSink >::Close(), and BaseWindowNode< ValueType, Input, WindowFunction, PartialWindowFunction >::writer_.

Member Data Documentation

◆ debug

constexpr bool debug = false
staticprotected

Definition at line 35 of file window.hpp.

◆ file_

◆ first_rank_

◆ parent_stack_empty_

const bool parent_stack_empty_
protected

◆ partial_window_function_

◆ window_

◆ window_function_

◆ window_size_

◆ writer_

data::File::Writer writer_ { file_.GetWriter() }
protected

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