108 const std::vector<NativeInstrumentFeed>& feeds,
114 const std::vector<NativeTimeframeSubscription>& subscriptions,
115 const std::string& input_tf,
116 bool timeframe_undetected,
117 const std::optional<NativeAuxiliaryFeed>& auxiliary_feed,
118 const std::vector<NativeInstrumentFeed>& instrument_feeds,
125 const std::vector<NativeInstrumentFeed>& feeds,
156 using Visitor = bool (*)(
void* context,
const Bar& bar)
noexcept;
181 std::int64_t begin_ms,
std::int64_t end_ms) = 0;
Four-operation source for full-path and windowed access.
virtual std::size_t count() const =0
Fixed lifetime row count, including zero.
virtual bool for_each(Visitor visitor, void *context) const =0
Fresh whole-path walk, true only if complete and false only for visitor stop.
virtual const Bar * next_after_segment() const noexcept=0
Null before the first segment; otherwise the first path bar at/after its end, or null at exhaustion,...
virtual ~NativeLowerPathSource() noexcept=default
bool(*)(void *context, const Bar &bar) noexcept Visitor
Synchronous ordered callback; bar lives for this call only.
virtual NativeBarView segment(std::int64_t begin_ms, std::int64_t end_ms)=0
Ordered contiguous rows with begin_ms <= timestamp < end_ms.
std::uint64_t native_instrument_feeds_digest(const std::vector< NativeInstrumentFeed > &feeds, const NativeBarViews &views) noexcept
Same count, metadata, ordered OHLCV/timestamp/close/columns fold and feed NaN canonicalization.
NativeRunSpecValidation validate_native_instrument_feeds(const std::vector< NativeInstrumentFeed > &feeds, const NativeBarViews &views) noexcept
The same feed-only validation over effective data, retaining all existing refusal ordering and typed ...
std::uint64_t native_run_spec_digest(const NativeRunSpec &spec, const NativeBarViews &views)
Portable spec fold with an explicit context, sharing the existing fold and relative run base; never i...
std::uint64_t native_intrabar_path_digest(const IntrabarPath &path, const NativeLowerPathSource *source)
Null delegates to the vector digest; nonnull replaces only lower count/ walk.
NativeRunSpecValidation validate_native_timeframe_subscriptions(const std::vector< NativeTimeframeSubscription > &subscriptions, const std::string &input_tf, bool timeframe_undetected, const std::optional< NativeAuxiliaryFeed > &auxiliary_feed, const std::vector< NativeInstrumentFeed > &instrument_feeds, const NativeBarViews &views) noexcept
The same feeds-first, auxiliary-feed, then subscription judgement over effective data,...
NativeInstrumentFeedReadView native_instrument_feed_view(const NativeInstrumentFeed &owned, const NativeInstrumentFeedView *borrowed) noexcept
Common accessor for effective feed data.
NativeRunSpecValidation normalize_native_run_spec(NativeRunSpec &spec, const NativeBarViews &views) noexcept
Existing full validation and zero-fee normalization over effective data.
Borrowed OHLCV span: a bar pointer and a row count.
Explicit read context for feeds and lower paths.
const NativeLowerPathSource * lower_path
std::size_t instrument_feed_count
NativeBarView lower_segment
const NativeInstrumentFeedView *const * instrument_feeds
Effective feed data from owned vectors or a borrowed view.
const std::int64_t * close_ms
Borrowed instrument feed.
const std::int64_t * close_ms
An owned lower-timeframe execution path.
Another instrument's own bars of one timeframe, installed as data.
Allocation-free facts suitable for the host's durable failure variant.
One complete setup value, staged/copied by NativeStrategyHost before it is applied at begin.