Lumiera 0.pre.04
»edit your freedom«
Loading...
Searching...
No Matches
OutputSlot::Connection Class Referenceabstract

#include "steam/play/output-slot-connection.hpp"

Description

represents the active point in each of the per-channel connections used when this OutputSlot is operational.

OutputSlot Core API

Actually, this extension point towards the implementation of the actual output handling carries the core API of OutputSlot. Thus, the task of actually implementing an OutputSlot boils down to implementing this interface and providing a ConnectionState.

  • lock() announces this FrameID and the corresponding buffer to be in exclusive use by the client from now on
  • transfer() ends the client sided processing and initiates the outputting of the data found in the corresponding buffer.
  • pushout() actually pushes the denoted buffer to the output. Typically, pushout() is called from the transfer() implementation; yet it may as well be called from a separate service thread or some kind of callback.
    Note
    the meaning of FrameID is implementation defined.
    typically the concrete connection is non-copyable

Definition at line 89 of file output-slot-connection.hpp.

Public Member Functions

virtual ~Connection ()
 
virtual BuffHandle claimBufferFor (FrameID)=0
 
virtual bool isTimely (FrameID, TimeValue)=0
 
virtual void transfer (BuffHandle const &)=0
 
virtual void pushout (BuffHandle const &)=0
 
virtual void discard (BuffHandle const &)=0
 
virtual void shutDown ()=0
 

Constructor & Destructor Documentation

◆ ~Connection()

~Connection ( )
virtual

Definition at line 41 of file output-slot.cpp.

Member Function Documentation

◆ claimBufferFor()

virtual BuffHandle claimBufferFor ( FrameID  )
pure virtual

◆ isTimely()

virtual bool isTimely ( FrameID  ,
TimeValue   
)
pure virtual

Implemented in TrackingInMemoryBlockSequence, and UnimplementedConnection.

Referenced by DataSink::emit().

+ Here is the caller graph for this function:

◆ transfer()

virtual void transfer ( BuffHandle const &  )
pure virtual

Implemented in UnimplementedConnection, and TrackingInMemoryBlockSequence.

Referenced by DataSink::emit().

+ Here is the caller graph for this function:

◆ pushout()

virtual void pushout ( BuffHandle const &  )
pure virtual

◆ discard()

virtual void discard ( BuffHandle const &  )
pure virtual

Implemented in UnimplementedConnection, and TrackingInMemoryBlockSequence.

Referenced by DataSink::emit().

+ Here is the caller graph for this function:

◆ shutDown()

virtual void shutDown ( )
pure virtual

Implemented in TrackingInMemoryBlockSequence, and UnimplementedConnection.

Referenced by OutputSlotImplBase::ConnectionManager< CON >::shutdownConnection().

+ Here is the caller graph for this function:
+ Inheritance diagram for OutputSlot::Connection:
+ Collaboration diagram for OutputSlot::Connection:

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