11f6a57c1SMed Ismail Bennani //===-- ScriptedProcessPythonInterface.h ------------------------*- C++ -*-===//
21f6a57c1SMed Ismail Bennani //
31f6a57c1SMed Ismail Bennani // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
41f6a57c1SMed Ismail Bennani // See https://llvm.org/LICENSE.txt for license information.
51f6a57c1SMed Ismail Bennani // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
61f6a57c1SMed Ismail Bennani //
71f6a57c1SMed Ismail Bennani //===----------------------------------------------------------------------===//
81f6a57c1SMed Ismail Bennani 
91f6a57c1SMed Ismail Bennani #ifndef LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTEDPROCESSPYTHONINTERFACE_H
101f6a57c1SMed Ismail Bennani #define LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTEDPROCESSPYTHONINTERFACE_H
111f6a57c1SMed Ismail Bennani 
121f6a57c1SMed Ismail Bennani #include "lldb/Host/Config.h"
131f6a57c1SMed Ismail Bennani 
141f6a57c1SMed Ismail Bennani #if LLDB_ENABLE_PYTHON
151f6a57c1SMed Ismail Bennani 
16*3925204cSMed Ismail Bennani #include "ScriptedPythonInterface.h"
171f6a57c1SMed Ismail Bennani #include "lldb/Interpreter/ScriptedProcessInterface.h"
181f6a57c1SMed Ismail Bennani 
191f6a57c1SMed Ismail Bennani namespace lldb_private {
20*3925204cSMed Ismail Bennani class ScriptedProcessPythonInterface : public ScriptedProcessInterface,
21*3925204cSMed Ismail Bennani                                        public ScriptedPythonInterface {
221f6a57c1SMed Ismail Bennani public:
23*3925204cSMed Ismail Bennani   ScriptedProcessPythonInterface(ScriptInterpreterPythonImpl &interpreter);
241f6a57c1SMed Ismail Bennani 
251f6a57c1SMed Ismail Bennani   StructuredData::GenericSP
26*3925204cSMed Ismail Bennani   CreatePluginObject(const llvm::StringRef class_name,
27*3925204cSMed Ismail Bennani                      ExecutionContext &exe_ctx,
281f6a57c1SMed Ismail Bennani                      StructuredData::DictionarySP args_sp) override;
291f6a57c1SMed Ismail Bennani 
301f6a57c1SMed Ismail Bennani   Status Launch() override;
311f6a57c1SMed Ismail Bennani 
321f6a57c1SMed Ismail Bennani   Status Resume() override;
331f6a57c1SMed Ismail Bennani 
34312b43daSMed Ismail Bennani   bool ShouldStop() override;
35312b43daSMed Ismail Bennani 
36312b43daSMed Ismail Bennani   Status Stop() override;
37312b43daSMed Ismail Bennani 
381f6a57c1SMed Ismail Bennani   lldb::MemoryRegionInfoSP
391f6a57c1SMed Ismail Bennani   GetMemoryRegionContainingAddress(lldb::addr_t address) override;
401f6a57c1SMed Ismail Bennani 
411f6a57c1SMed Ismail Bennani   StructuredData::DictionarySP GetThreadWithID(lldb::tid_t tid) override;
421f6a57c1SMed Ismail Bennani 
431f6a57c1SMed Ismail Bennani   StructuredData::DictionarySP GetRegistersForThread(lldb::tid_t tid) override;
441f6a57c1SMed Ismail Bennani 
451f6a57c1SMed Ismail Bennani   lldb::DataExtractorSP ReadMemoryAtAddress(lldb::addr_t address, size_t size,
461f6a57c1SMed Ismail Bennani                                             Status &error) override;
471f6a57c1SMed Ismail Bennani 
481f6a57c1SMed Ismail Bennani   StructuredData::DictionarySP GetLoadedImages() override;
491f6a57c1SMed Ismail Bennani 
501f6a57c1SMed Ismail Bennani   lldb::pid_t GetProcessID() override;
511f6a57c1SMed Ismail Bennani 
521f6a57c1SMed Ismail Bennani   bool IsAlive() override;
531f6a57c1SMed Ismail Bennani };
541f6a57c1SMed Ismail Bennani } // namespace lldb_private
551f6a57c1SMed Ismail Bennani 
561f6a57c1SMed Ismail Bennani #endif // LLDB_ENABLE_PYTHON
571f6a57c1SMed Ismail Bennani #endif // LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTEDPROCESSPYTHONINTERFACE_H
58