15 #ifndef PIPELINECYCLERDUMMYIMPL_H 16 #define PIPELINECYCLERDUMMYIMPL_H 18 #include "pandabase.h" 20 #if defined(DO_PIPELINING) && !defined(HAVE_THREADS) 22 #include "cycleData.h" 24 #include "pointerTo.h" 44 struct EXPCL_PANDA_PIPELINE PipelineCyclerDummyImpl {
46 INLINE PipelineCyclerDummyImpl(
CycleData *initial_data,
Pipeline *pipeline = NULL);
47 INLINE PipelineCyclerDummyImpl(
const PipelineCyclerDummyImpl ©);
48 INLINE
void operator = (
const PipelineCyclerDummyImpl ©);
49 INLINE ~PipelineCyclerDummyImpl();
51 INLINE
void acquire(
Thread *current_thread = NULL);
52 INLINE
void release();
56 INLINE
void increment_read(
const CycleData *pointer)
const;
57 INLINE
void release_read(
const CycleData *pointer)
const;
60 INLINE
CycleData *write_upstream(
bool force_to_0,
Thread *current_thread);
63 INLINE
void increment_write(
CycleData *pointer)
const;
64 INLINE
void release_write(
CycleData *pointer);
66 INLINE
int get_num_stages();
67 INLINE
const CycleData *read_stage_unlocked(
int pipeline_stage)
const;
68 INLINE
const CycleData *read_stage(
int pipeline_stage,
Thread *current_thread)
const;
69 INLINE
void release_read_stage(
int pipeline_stage,
const CycleData *pointer)
const;
70 INLINE
CycleData *write_stage(
int pipeline_stage,
Thread *current_thread);
71 INLINE
CycleData *write_stage_upstream(
int pipeline_stage,
bool force_to_0,
Thread *current_thread);
73 INLINE
CycleData *elevate_read_stage_upstream(
int pipeline_stage,
const CycleData *pointer,
74 bool force_to_0,
Thread *current_thread);
75 INLINE
void release_write_stage(
int pipeline_stage,
CycleData *pointer);
80 INLINE
int get_read_count()
const;
81 INLINE
int get_write_count()
const;
86 short _read_count, _write_count;
90 #include "pipelineCyclerDummyImpl.I" 92 #endif // DO_PIPELINING && !HAVE_THREADS A single page of data maintained by a PipelineCycler.
This class manages a staged pipeline of data, for instance the render pipeline, so that each stage of...
A thread; that is, a lightweight process.
TypeHandle is the identifier used to differentiate C++ class types.