lumiera_documentation/src/steam/engine/buffer-proxy-provider.cpp
Ichthyostega 33c8f1c5b1 Invocation: investigate forwarding an output data block
This investigation started out as solving an already solved problem...
I'll continue this as a design exercise non the less.

__Some explanation__: To achieve the goal of invoking a Node end-to-end,
the gap between the `Port` API, the `ProcNode` API and the `RenderInvocation` must be closed.
This leads to questions of API design: ''what core operation should the `ProcNode` API expose?''
 * is `ProcNode` just a forwarding / delegating container and becoming redundant?
 * or does the API rather move in the direction of an ''Exit Node''?

This leads to the question how the opened `OutputSlot` can be exposed as a `BuffHandle`
to allow to set off the recursive Node invocation. As it turns out, the onerous for this step
lies on the actual `OutputSlot` implementation, since the API and output protocol already requires
to expose a `BuffHandle`. Yet there is no "real" implementation available, just a Mock setup based
on `DiagnosticBufferProvider`, which obviously can just be passed-through.

Which leaves me with mixed feelings. For one it is conveninent to skip this topic for now,
but on the other hand the design of `BufferProvider` does not seem well suited for such an proxying task.
Thus I decided to explore this aspect in the form of a prototyping test....
2024-12-23 02:31:29 +01:00

55 lines
1.3 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
BufferProxyProvider - Adapt existing allocation for access through the Buffer protocol
Copyright (C)
2024, Hermann Vosseler <Ichthyostega@web.de>
  **Lumiera** 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. See the file COPYING for further details.
* *****************************************************************/
/** @file buffer-proxy-provider.cpp
** Implementation details of a forwarding BufferProvider stub implementation.
*/
#include "lib/error.hpp"
#include "steam/engine/buffer-proxy-provider.hpp"
//#include "steam/engine/buffer-metadata.hpp"
//#include "lib/util.hpp"
//using util::isSameAdr;
namespace steam {
namespace engine {
// storage for the default-marker constants
// const TypeHandler TypeHandler::RAW{};
namespace { // impl. details and definitions
// const uint DEFAULT_DESCRIPTOR = 0;
}
/** build a new
*/
// BufferProvider::BufferProvider (Literal implementationID)
// : meta_(new BufferMetadata (implementationID))
// { }
//
// BufferProvider::~BufferProvider() { }
/** @internal verify the given descriptor.
*/
}} // namespace engine