159d8dd79SMed Ismail Bennani //===-- ScriptedThreadPythonInterface.h ------------------------*- C++ -*-===//
259d8dd79SMed Ismail Bennani //
359d8dd79SMed Ismail Bennani // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
459d8dd79SMed Ismail Bennani // See https://llvm.org/LICENSE.txt for license information.
559d8dd79SMed Ismail Bennani // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
659d8dd79SMed Ismail Bennani //
759d8dd79SMed Ismail Bennani //===----------------------------------------------------------------------===//
859d8dd79SMed Ismail Bennani 
959d8dd79SMed Ismail Bennani #ifndef LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTEDTHREADPYTHONINTERFACE_H
1059d8dd79SMed Ismail Bennani #define LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTEDTHREADPYTHONINTERFACE_H
1159d8dd79SMed Ismail Bennani 
1259d8dd79SMed Ismail Bennani #include "lldb/Host/Config.h"
1359d8dd79SMed Ismail Bennani 
1459d8dd79SMed Ismail Bennani #if LLDB_ENABLE_PYTHON
1559d8dd79SMed Ismail Bennani 
1659d8dd79SMed Ismail Bennani #include "ScriptedPythonInterface.h"
1759d8dd79SMed Ismail Bennani #include "lldb/Interpreter/ScriptedProcessInterface.h"
1859d8dd79SMed Ismail Bennani 
1959d8dd79SMed Ismail Bennani namespace lldb_private {
2059d8dd79SMed Ismail Bennani class ScriptedThreadPythonInterface : public ScriptedThreadInterface,
2159d8dd79SMed Ismail Bennani                                       public ScriptedPythonInterface {
2259d8dd79SMed Ismail Bennani public:
2359d8dd79SMed Ismail Bennani   ScriptedThreadPythonInterface(ScriptInterpreterPythonImpl &interpreter);
2459d8dd79SMed Ismail Bennani 
2559d8dd79SMed Ismail Bennani   StructuredData::GenericSP
2659d8dd79SMed Ismail Bennani   CreatePluginObject(llvm::StringRef class_name, ExecutionContext &exe_ctx,
2759d8dd79SMed Ismail Bennani                      StructuredData::DictionarySP args_sp) override;
2859d8dd79SMed Ismail Bennani 
2959d8dd79SMed Ismail Bennani   lldb::tid_t GetThreadID() override;
3059d8dd79SMed Ismail Bennani 
3159d8dd79SMed Ismail Bennani   llvm::Optional<std::string> GetName() override;
3259d8dd79SMed Ismail Bennani 
3359d8dd79SMed Ismail Bennani   lldb::StateType GetState() override;
3459d8dd79SMed Ismail Bennani 
3559d8dd79SMed Ismail Bennani   llvm::Optional<std::string> GetQueue() override;
3659d8dd79SMed Ismail Bennani 
3759d8dd79SMed Ismail Bennani   StructuredData::DictionarySP GetStopReason() override;
3859d8dd79SMed Ismail Bennani 
3959d8dd79SMed Ismail Bennani   StructuredData::ArraySP GetStackFrames() override;
4059d8dd79SMed Ismail Bennani 
4159d8dd79SMed Ismail Bennani   StructuredData::DictionarySP GetRegisterInfo() override;
4259d8dd79SMed Ismail Bennani 
4359d8dd79SMed Ismail Bennani   llvm::Optional<std::string> GetRegisterContext() override;
4459d8dd79SMed Ismail Bennani };
4559d8dd79SMed Ismail Bennani } // namespace lldb_private
4659d8dd79SMed Ismail Bennani 
4759d8dd79SMed Ismail Bennani #endif // LLDB_ENABLE_PYTHON
48*c2cc70e4SQiu Chaofan #endif // LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTEDTHREADPYTHONINTERFACE_H
49