Panda3D
Public Member Functions | List of all members
CycleDataWriter< CycleDataType > Class Template Reference

This template class calls PipelineCycler::write() in the constructor and PipelineCycler::release_write() in the destructor. More...

#include "cycleDataWriter.h"

Public Member Functions

 CycleDataWriter (PipelineCycler< CycleDataType > &cycler, Thread *current_thread=Thread::get_current_thread())
 
 CycleDataWriter (PipelineCycler< CycleDataType > &cycler, bool force_to_0, Thread *current_thread=Thread::get_current_thread())
 
 CycleDataWriter (PipelineCycler< CycleDataType > &cycler, CycleDataType *locked_cdata, Thread *current_thread=Thread::get_current_thread())
 
 CycleDataWriter (const CycleDataWriter< CycleDataType > &copy)
 
 CycleDataWriter (CycleDataWriter< CycleDataType > &&from) noexcept
 
 CycleDataWriter (PipelineCycler< CycleDataType > &cycler, CycleDataLockedReader< CycleDataType > &take_from)
 This flavor of the constructor elevates the pointer from the CycleDataLockedReader from a read to a write pointer (and invalidates the reader). More...
 
 CycleDataWriter (PipelineCycler< CycleDataType > &cycler, CycleDataLockedReader< CycleDataType > &take_from, bool force_to_0)
 This flavor of the constructor elevates the pointer from the CycleDataLockedReader from a read to a write pointer (and invalidates the reader). More...
 
Threadget_current_thread () const
 Returns the Thread pointer of the currently-executing thread, as passed to the constructor of this object. More...
 
 operator CycleDataType * ()
 This allows the CycleDataWriter to be passed to any function that expects a CycleDataType pointer. More...
 
CycleDataType * operator-> ()
 This provides an indirect member access to the actual CycleData data. More...
 
const CycleDataType * operator-> () const
 This provides an indirect member access to the actual CycleData data. More...
 
void operator= (CycleDataWriter< CycleDataType > &&from) noexcept
 
void operator= (const CycleDataWriter< CycleDataType > &copy)
 

Detailed Description

template<class CycleDataType>
class CycleDataWriter< CycleDataType >

This template class calls PipelineCycler::write() in the constructor and PipelineCycler::release_write() in the destructor.

In the interim, it provides a transparent read-write access to the CycleData.

It exists as a syntactic convenience to access the data in the CycleData. It also allows the whole system to compile down to nothing if DO_PIPELINING is not defined.

Definition at line 34 of file cycleDataWriter.h.

Constructor & Destructor Documentation

◆ CycleDataWriter() [1/2]

template<class CycleDataType >
CycleDataWriter< CycleDataType >::CycleDataWriter ( PipelineCycler< CycleDataType > &  cycler,
CycleDataLockedReader< CycleDataType > &  take_from 
)
inline

This flavor of the constructor elevates the pointer from the CycleDataLockedReader from a read to a write pointer (and invalidates the reader).

Definition at line 270 of file cycleDataWriter.I.

◆ CycleDataWriter() [2/2]

template<class CycleDataType >
CycleDataWriter< CycleDataType >::CycleDataWriter ( PipelineCycler< CycleDataType > &  cycler,
CycleDataLockedReader< CycleDataType > &  take_from,
bool  force_to_0 
)
inline

This flavor of the constructor elevates the pointer from the CycleDataLockedReader from a read to a write pointer (and invalidates the reader).

It also propagates the pointer back upstream; see PipelineCycler::write_upstream().

Definition at line 284 of file cycleDataWriter.I.

Member Function Documentation

◆ get_current_thread()

template<class CycleDataType >
Thread * CycleDataWriter< CycleDataType >::get_current_thread ( ) const
inline

Returns the Thread pointer of the currently-executing thread, as passed to the constructor of this object.

Definition at line 333 of file cycleDataWriter.I.

◆ operator CycleDataType *()

template<class CycleDataType >
CycleDataWriter< CycleDataType >::operator CycleDataType * ( )
inline

This allows the CycleDataWriter to be passed to any function that expects a CycleDataType pointer.

Definition at line 323 of file cycleDataWriter.I.

◆ operator->() [1/2]

template<class CycleDataType >
CycleDataType * CycleDataWriter< CycleDataType >::operator-> ( )
inline

This provides an indirect member access to the actual CycleData data.

Definition at line 304 of file cycleDataWriter.I.

◆ operator->() [2/2]

template<class CycleDataType >
const CycleDataType * CycleDataWriter< CycleDataType >::operator-> ( ) const
inline

This provides an indirect member access to the actual CycleData data.

Definition at line 313 of file cycleDataWriter.I.


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