/* * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. */ #pragma once #include #include "glean/rts/factset.h" #include "glean/rts/inventory.h" #include "glean/rts/ownership/derived.h" #ifdef OSS #include // @manual #else #include #endif namespace facebook { namespace glean { namespace rts { struct QueryResults { HsArray fact_ids; HsArray fact_pids; HsArray fact_keys; HsArray fact_values; HsArray nested_fact_ids; HsArray nested_fact_pids; HsArray nested_fact_keys; HsArray nested_fact_values; HsMap stats; uint64_t elapsed_ns; HsString continuation; uint64_t result_bytes; }; enum class Depth { ResultsOnly, ExpandRecursive, ExpandPartial }; std::unique_ptr executeQuery( Inventory& inventory, Define& facts, DefineOwnership* ownership, Subroutine& sub, Pid pid, std::shared_ptr traverse, folly::Optional maxResults, folly::Optional maxBytes, folly::Optional maxTime, folly::Optional maxSetSize, Depth depth, std::unordered_set>& expandPids, bool wantStats); std::unique_ptr restartQuery( Inventory& inventory, Define& facts, DefineOwnership* ownership, folly::Optional maxResults, folly::Optional maxBytes, folly::Optional maxTime, folly::Optional maxSetSize, Depth depth, std::unordered_set>& expandPids, bool wantStats, void* serializedCont, uint64_t serializedContLen); void interruptRunningQueries(); } // namespace rts } // namespace glean } // namespace facebook