Lumiera  0.pre.03
»edityourfreedom«
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
calc-plan-continuation.hpp
Go to the documentation of this file.
1 /*
2  CALC-PLAN-CONTINUATION.hpp - closure for planning a chunk of jobs
3 
4  Copyright (C) Lumiera.org
5  2013, Hermann Vosseler <Ichthyostega@web.de>
6 
7  This program is free software; you can redistribute it and/or
8  modify it under the terms of the GNU General Public License as
9  published by the Free Software Foundation; either version 2 of
10  the License, or (at your option) any later version.
11 
12  This program is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with this program; if not, write to the Free Software
19  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20 
21 */
22 
23 
36 #ifndef PROC_ENGINE_CALC_PLAN_CONTINUATION_H
37 #define PROC_ENGINE_CALC_PLAN_CONTINUATION_H
38 
39 #include "proc/common.hpp"
43 #include "proc/play/timings.hpp"
44 #include "backend/engine/job.h"
45 
46 
47 namespace proc {
48 namespace engine {
49 
50 // using std::function;
53  using mobject::ModelPort;
54 // using lib::time::TimeSpan;
55 // using lib::time::FSecs;
56 // using lib::time::Time;
57  using lib::time::FrameCnt;
58 
59 
71  : public JobClosure
72  {
73 
76  const ModelPort modelPort_;
77  const uint channel_;
78 
79 
80  /* === JobClosure Interface === */
81 
82  JobKind
83  getJobKind() const
84  {
85  return META_JOB;
86  }
87 
88  bool verify (Time, InvocationInstanceID) const;
89  size_t hashOfInstance (InvocationInstanceID) const;
90 
93 
94 
95 
96 
97  public:
102  ,Dispatcher& dispatcher
103  ,ModelPort modelPort
104  ,uint channel)
105  : timings_(timings)
106  , dispatcher_(dispatcher)
107  , modelPort_(modelPort)
108  , channel_(channel)
109  { }
110 
121 
122 
123  private:
124  void performJobPlanningChunk(FrameCnt nextStartFrame);
125  Job buildFollowUpJobFrom (TimeAnchor const& refPoint);
126  };
127 
128 
129 
130 }} // namespace proc::engine
131 #endif
Organising the output data calculation possibilities.
JobFailureReason
Definition: job.h:88
int64_t FrameCnt
Definition: job.h:94
Service abstraction within the render engine for generating render jobs.
size_t hashOfInstance(InvocationInstanceID) const
Individual frame rendering task, forwarding to a closure.
Definition: job.h:248
Basic set of definitions and includes commonly used together.
Lumiera's internal time value datatype.
Definition: timevalue.hpp:226
JobKind
Definition: job.h:69
The process of playback or rendering is a continued series of exploration and evaluation.
Definition: time-anchor.hpp:97
Job buildFollowUpJobFrom(TimeAnchor const &refPoint)
lumiera_jobParameter const & JobParameter
Definition: job.h:198
Interface of the closure for frame rendering jobs.
Definition: job.h:214
Representation of a continuation point for planning the render process.
Definition of a render job.
void signalFailure(JobParameter, JobFailureReason)
opaque ID attached to each individual job invocation.
Definition: job.h:113
Internal abstraction: a service within the engine for translating a logical calculation stream (corre...
Definition: dispatcher.hpp:83
Special job to perform the job planning.
How to define a timing specification or constraint.
Job prepareRenderPlanningFrom(FrameCnt startFrame)
create the "start trigger job" Scheduling this job will effectively get a calculation stream into act...
CalcPlanContinuation(play::Timings const &timings, Dispatcher &dispatcher, ModelPort modelPort, uint channel)
int64_t FrameCnt
relative framecount or frame number.
Definition: digxel.hpp:321
void performJobPlanningChunk(FrameCnt nextStartFrame)
Proc-Layer implementation namespace root.
Definition: id-scheme.hpp:63
render process self organisation
Definition: job.h:73
Generic frame timing specification.
Definition: timings.hpp:95
void invokeJobOperation(JobParameter)
entry point (interface JobClosure): invoke the concrete job operation.
bool verify(Time, InvocationInstanceID) const