// --------------------------------------------------------------------------- // GENERATED FILE — DO NOT EDIT. // // Source: contracts/schema/** // Generator: contracts/codegen/gen_cpp.py // Contract: v1.3.0 // // Hand-editing this file is a merge blocker. Fix the schema and regenerate: // python3 contracts/codegen/gen_cpp.py // Only lane PROTO commits to contracts/. // --------------------------------------------------------------------------- #pragma once #include "velox_proto.hpp" #include #include namespace velox::conformance { /// Answers every method from its golden fixture, so the generated dispatch path /// itself is under test: envelope, transport check, param parse, result serialise. class FixtureDispatcher final : public proto::Dispatcher { public: /// `results` maps a method name to that method's golden result JSON. explicit FixtureDispatcher(std::function results) : results_(std::move(results)) {} proto::Result on_capture_getRules(const proto::CaptureGetRulesParams& params) override { (void)params; return golden("capture.getRules"); } proto::Result on_capture_offer(const proto::CaptureOfferParams& params) override { (void)params; return golden("capture.offer"); } proto::Result on_category_list(const proto::CategoryListParams& params) override { (void)params; return golden("category.list"); } proto::Result on_category_remove(const proto::CategoryRemoveParams& params) override { (void)params; return golden("category.remove"); } proto::Result on_category_upsert(const proto::CategoryUpsertParams& params) override { (void)params; return golden("category.upsert"); } proto::Result on_download_add(const proto::DownloadSpec& params) override { (void)params; return golden("download.add"); } proto::Result on_download_addBatch(const proto::DownloadAddBatchParams& params) override { (void)params; return golden("download.addBatch"); } proto::Result on_download_cancel(const proto::DownloadCancelParams& params) override { (void)params; return golden("download.cancel"); } proto::Result on_download_get(const proto::DownloadGetParams& params) override { (void)params; return golden("download.get"); } proto::Result on_download_list(const proto::DownloadListParams& params) override { (void)params; return golden("download.list"); } proto::Result on_download_pause(const proto::DownloadPauseParams& params) override { (void)params; return golden("download.pause"); } proto::Result on_download_probe(const proto::DownloadProbeParams& params) override { (void)params; return golden("download.probe"); } proto::Result on_download_provideAuth(const proto::DownloadProvideAuthParams& params) override { (void)params; return golden("download.provideAuth"); } proto::Result on_download_refreshUrl(const proto::DownloadRefreshUrlParams& params) override { (void)params; return golden("download.refreshUrl"); } proto::Result on_download_remove(const proto::DownloadRemoveParams& params) override { (void)params; return golden("download.remove"); } proto::Result on_download_resume(const proto::DownloadResumeParams& params) override { (void)params; return golden("download.resume"); } proto::Result on_download_start(const proto::DownloadStartParams& params) override { (void)params; return golden("download.start"); } proto::Result on_download_update(const proto::DownloadUpdateParams& params) override { (void)params; return golden("download.update"); } proto::Result on_grabber_harvest(const proto::GrabberHarvestParams& params) override { (void)params; return golden("grabber.harvest"); } proto::Result on_grabber_start(const proto::GrabberStartParams& params) override { (void)params; return golden("grabber.start"); } proto::Result on_grabber_status(const proto::GrabberStatusParams& params) override { (void)params; return golden("grabber.status"); } proto::Result on_limiter_get(const proto::LimiterGetParams& params) override { (void)params; return golden("limiter.get"); } proto::Result on_limiter_set(const proto::Limiter& params) override { (void)params; return golden("limiter.set"); } proto::Result on_media_addVariant(const proto::MediaAddVariantParams& params) override { (void)params; return golden("media.addVariant"); } proto::Result on_media_listVariants(const proto::MediaListVariantsParams& params) override { (void)params; return golden("media.listVariants"); } proto::Result on_queue_list(const proto::QueueListParams& params) override { (void)params; return golden("queue.list"); } proto::Result on_queue_reorder(const proto::QueueReorderParams& params) override { (void)params; return golden("queue.reorder"); } proto::Result on_queue_start(const proto::QueueStartParams& params) override { (void)params; return golden("queue.start"); } proto::Result on_queue_stop(const proto::QueueStopParams& params) override { (void)params; return golden("queue.stop"); } proto::Result on_queue_upsert(const proto::QueueUpsertParams& params) override { (void)params; return golden("queue.upsert"); } proto::Result on_rules_list(const proto::RulesListParams& params) override { (void)params; return golden("rules.list"); } proto::Result on_rules_upsert(const proto::RulesUpsertParams& params) override { (void)params; return golden("rules.upsert"); } proto::Result on_schedule_get(const proto::ScheduleGetParams& params) override { (void)params; return golden("schedule.get"); } proto::Result on_schedule_set(const proto::ScheduleSetParams& params) override { (void)params; return golden("schedule.set"); } proto::Result on_session_hello(const proto::SessionHelloParams& params) override { (void)params; return golden("session.hello"); } proto::Result on_session_pair(const proto::SessionPairParams& params) override { (void)params; return golden("session.pair"); } proto::Result on_session_subscribe(const proto::SessionSubscribeParams& params) override { (void)params; return golden("session.subscribe"); } proto::Result on_settings_get(const proto::SettingsGetParams& params) override { (void)params; return golden("settings.get"); } proto::Result on_settings_set(const proto::SettingsSetParams& params) override { (void)params; return golden("settings.set"); } private: template proto::Result golden(const std::string& method) { const nlohmann::json* value = results_(method); if (value == nullptr) return std::unexpected(proto::ParseError{method, "no fixture for this method"}); return proto::parse(*value, method); } std::function results_; }; } // namespace velox::conformance