blob: b03a8cae8f1813296e66f96104bdd3161329d706 [file] [log] [blame]
//===--- QuerySession.h -----------------------------------------*- C++ -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
#ifndef MLIR_TOOLS_MLIRQUERY_QUERYSESSION_H
#define MLIR_TOOLS_MLIRQUERY_QUERYSESSION_H
#include "llvm/ADT/StringMap.h"
namespace mlir::query {
class Registry;
// Represents the state for a particular mlir-query session.
class QuerySession {
public:
QuerySession(Operation *rootOp, llvm::SourceMgr &sourceMgr, unsigned bufferId,
const matcher::Registry &matcherRegistry)
: rootOp(rootOp), sourceMgr(sourceMgr), bufferId(bufferId),
matcherRegistry(matcherRegistry) {}
Operation *getRootOp() { return rootOp; }
llvm::SourceMgr &getSourceManager() const { return sourceMgr; }
unsigned getBufferId() { return bufferId; }
const matcher::Registry &getRegistryData() const { return matcherRegistry; }
llvm::StringMap<matcher::VariantValue> namedValues;
bool terminate = false;
private:
Operation *rootOp;
llvm::SourceMgr &sourceMgr;
unsigned bufferId;
const matcher::Registry &matcherRegistry;
};
} // namespace mlir::query
#endif // MLIR_TOOLS_MLIRQUERY_QUERYSESSION_H