Lumiera  0.pre.03
»edit your freedom«
state-closure-obsolete.hpp
1 /*
2  STATE-CLOSURE.hpp - Key Interface representing a render process and encapsulating state
3 
4  Copyright (C)
5  2008, Hermann Vosseler <Ichthyostega@web.de>
6 
7   **Lumiera** is free software; you can redistribute it and/or modify it
8   under the terms of the GNU General Public License as published by the
9   Free Software Foundation; either version 2 of the License, or (at your
10   option) any later version. See the file COPYING for further details.
11 
12 */
13 
14 
22 #ifndef STEAM_ENGINE_STATE_CLOSURE_OBSOLETE_H
23 #define STEAM_ENGINE_STATE_CLOSURE_OBSOLETE_H
24 
25 
26 #include "lib/error.hpp"
27 #include "lib/frameid.hpp"
29 
30 #include <cstddef>
31 
32 
33 namespace steam {
34 namespace engine {
35 
36  using lumiera::FrameID;
37  using lumiera::NodeID;
38 
39  class StateAdapter;
40  class BuffTableStorage;
41 
42 
44 
54  {
56  public:
64  virtual BuffHandle allocateBuffer (const lumiera::StreamType*) =0;
65 
67  virtual void releaseBuffer (BuffHandle&) =0;
68 
74  virtual void is_calculated (BuffHandle const&) =0;
75 
85  virtual FrameID const& genFrameID (NodeID const&, uint chanNo) =0;
86 
92  virtual BuffHandle fetch (FrameID const&) =0;
93 
96 
97 
98  protected:
99  virtual ~StateClosure_OBSOLETE() {};
100 
108 
109  friend class engine::StateAdapter;
110  };
111 
112 }} // namespace steam::engine
113 #endif /*STEAM_ENGINE_STATE_CLOSURE_OBSOLETE_H*/
Identification tuple for addressing frames unambiguously.
Definition: frameid.hpp:72
virtual StateClosure_OBSOLETE & getCurrentImplementation()=0
resolves to the StateClosure object currently "in charge".
Obsolete, to be rewritten /////TICKET #826.
Marker tuple to identify a specific frame.
virtual FrameID const & genFrameID(NodeID const &, uint chanNo)=0
generate (or calculate) an ID denoting a media data frame appearing at the given position in the rend...
Adapter to shield the ProcNode from the actual buffer management, allowing the processing function wi...
Steam-Layer implementation namespace root.
virtual void is_calculated(BuffHandle const &)=0
declare the data contained in the Buffer to be ready.
virtual BuffHandle allocateBuffer(const lumiera::StreamType *)=0
allocate a new writable buffer with type and size according to the BuffDescr.
Abstraction to access the state of a currently ongoing render/calculation process, as it is tied to the supporting facilities of the vault layer.
A front-end to support the buffer management within the render nodes.
Lumiera error handling (C++ interface).
Handle for a buffer for processing data, abstracting away the actual implementation.
Definition: buffhandle.hpp:111
virtual BuffTableStorage & getBuffTableStorage()=0
necessary for creating a local BuffTableChunk
Identification tuple for denoting render nodes unambiguously.
Definition: frameid.hpp:45
virtual BuffHandle fetch(FrameID const &)=0
try to fetch an existing buffer containing the denoted frame from a cache or similar backing system (...
virtual void releaseBuffer(BuffHandle &)=0
resign control of the buffer denoted by the handle