/*
 * SPDX-FileCopyrightText: 2026 Oak Ridge National Laboratory and Contributors
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#ifndef ADIOS2_BINDINGS_PYTHON_QUERY_H_
#define ADIOS2_BINDINGS_PYTHON_QUERY_H_

#include <nanobind/nanobind.h>

// #include "adios2/toolkit/query/Query.h"
#include "adios2/toolkit/query/Worker.h"
#include "nbEngine.h"

namespace adios2
{
namespace py11
{

class Engine;

class Query
{

public:
    Query(std::string queryFile, Engine reader);
    ~Query() = default;

    explicit operator bool() const noexcept;

    std::vector<Box<Dims>> GetResult();
    std::vector<size_t> GetBlockIDs();

private:
    Query(adios2::query::Worker *qw);
    std::shared_ptr<adios2::query::Worker> m_QueryWorker;
};

} // end namespace py11
} // end namespace adios2

#endif /* BINDINGS_PYTHON_PYQUERY_H_ */
