16#define PINEFORGE_HAS_RUNTIME_CONTEXT_SERVICE_V1 1
25 const std::string& input_timeframe,
const std::string& requested_timeframe);
33 return a.generation == b.generation && a.serial == b.serial && a.owner == b.owner;
52 State* state_ =
nullptr;
59 virtual std::uint64_t
size()
const = 0;
60 virtual Bar read(std::uint64_t index)
const = 0;
134 using Factory = std::function<std::unique_ptr<RuntimeContextEvaluator>()>;
162 std::unique_ptr<Impl> impl_;
RunFailureInfo(RunFailureCode code, const RunFailureArgs &args) noexcept
RuntimeBatchLease(const RuntimeBatchLease &)=delete
RuntimeBatchLease & operator=(const RuntimeBatchLease &)=delete
RuntimeBatchLease(const Bar *bars, std::size_t count)
friend class RuntimeContextService
virtual ~RuntimeContextEvaluator()=default
virtual void consume(RuntimeContextService &, RuntimeContextHandle, const RuntimeContextEvent &)=0
virtual std::uint64_t storage_bytes() const noexcept=0
virtual void observe_owned_storage(OwnedStorage &out) const noexcept
RuntimeContextHandle active_context() const noexcept
void append_live(const Bar &)
RuntimeContextEvaluator & published(RuntimeContextHandle)
std::uint64_t callback_frontier() const noexcept
RuntimeContextService & operator=(const RuntimeContextService &)
void accept_batch(std::uint64_t exclusive_frontier)
std::uint64_t accepted_frontier() const noexcept
void bind_batch(const RuntimeBatchLease &)
void bind_source(std::shared_ptr< const RuntimeHistorySource >)
void configure(RuntimeHistoryOptions)
void advance(RuntimeContextHandle, std::uint64_t exclusive_frontier)
void release(RuntimeContextHandle)
RuntimeContextHandle get_or_create(const RuntimeContextKey &, const Factory &)
RuntimeContextService(const RuntimeContextService &)
RuntimeHistoryUsage usage() const noexcept
std::function< std::unique_ptr< RuntimeContextEvaluator >()> Factory
bool history_enabled() const noexcept
std::uint64_t frontier_before(std::int64_t exclusive_time_ms) const
const std::uint64_t configured
const std::uint64_t needed
RuntimeHistoryBudgetExhausted(std::uint64_t configured, std::uint64_t used, std::uint64_t needed)
virtual std::uint64_t size() const =0
virtual ~RuntimeHistorySource()=default
virtual Bar read(std::uint64_t index) const =0
const OwnedStorageUsage observation
RuntimeStorageObservationIncomplete(OwnedStorageUsage usage)
std::optional< RuntimeSubdivision > runtime_subdivision(const std::string &input_timeframe, const std::string &requested_timeframe)
std::vector< Bar > runtime_subdivide(const Bar &, RuntimeSubdivision)
friend bool operator==(RuntimeContextHandle a, RuntimeContextHandle b) noexcept
friend bool operator!=(RuntimeContextHandle a, RuntimeContextHandle b) noexcept
RuntimeContextHandle enclosing
std::string semantic_arguments
std::uint64_t template_id
std::size_t runtimeHistoryResidentBytes
std::optional< std::uint64_t > runtimeHistoryBudgetBytes
std::string runtimeHistorySpillDirectory
std::uint64_t accounted_bytes
std::uint64_t spool_bytes
std::uint64_t resident_bytes
OwnedStorageUsage owned_storage