This is necessary since the implementation of the job functions calls through the VTable of the interface JobClosure. Thus this interface (and the VTable definition) needs to reside within some compilation unit linked together with the basic job class. TODO: move class Job entirely into the Backend
100 lines
2.2 KiB
C++
100 lines
2.2 KiB
C++
/*
|
|
JobTicket - execution plan for render jobs
|
|
|
|
Copyright (C) Lumiera.org
|
|
2012, Hermann Vosseler <Ichthyostega@web.de>
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License as
|
|
published by the Free Software Foundation; either version 2 of
|
|
the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
|
|
* *****************************************************/
|
|
|
|
|
|
/** @file job-ticket.cpp
|
|
** Implementation details of preparing and performing job invocations.
|
|
**
|
|
** @todo WIP-WIP-WIP 3/2012
|
|
** @see Job
|
|
**
|
|
*/
|
|
|
|
|
|
#include "proc/engine/job-ticket.hpp"
|
|
|
|
|
|
namespace proc {
|
|
namespace engine {
|
|
|
|
namespace { // Details...
|
|
|
|
} // (END) Details...
|
|
|
|
|
|
// using mobject::Placement;
|
|
// using mobject::session::Effect;
|
|
|
|
|
|
|
|
|
|
|
|
class FrameJobClosure
|
|
: public JobClosure
|
|
{
|
|
// data members?
|
|
|
|
private: /* === JobClosure Interface === */
|
|
|
|
JobKind
|
|
getJobKind() const
|
|
{
|
|
return CALC_JOB;
|
|
}
|
|
|
|
bool
|
|
verify (Time nominalJobTime) const
|
|
{
|
|
UNIMPLEMENTED ("access the underlying JobTicket and verify the given job time is within the relevant timeline segment");
|
|
return false;
|
|
}
|
|
|
|
void
|
|
invokeJobOperation (JobParameter parameter)
|
|
{
|
|
UNIMPLEMENTED ("representation of the job functor");
|
|
}
|
|
|
|
|
|
void
|
|
signalFailure (JobParameter parameter)
|
|
{
|
|
UNIMPLEMENTED ("what needs to be done when a job cant be invoked?");
|
|
}
|
|
|
|
public:
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
/** */
|
|
Job
|
|
JobTicket::createJobFor (FrameCoord coordinates)
|
|
{
|
|
UNIMPLEMENTED ("job planning and generation");
|
|
}
|
|
|
|
|
|
|
|
}} // namespace proc::engine
|