1 //===-- ScriptedPlatformPythonInterface.h -----------------------*- C++ -*-===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #ifndef LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_INTERFACES_SCRIPTEDPLATFORMPYTHONINTERFACE_H
10 #define LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_INTERFACES_SCRIPTEDPLATFORMPYTHONINTERFACE_H
12 #include "lldb/Host/Config.h"
13 #include "lldb/Interpreter/Interfaces/ScriptedPlatformInterface.h"
15 #if LLDB_ENABLE_PYTHON
17 #include "ScriptedPythonInterface.h"
19 namespace lldb_private
{
20 class ScriptedPlatformPythonInterface
: public ScriptedPlatformInterface
,
21 public ScriptedPythonInterface
,
22 public PluginInterface
{
24 ScriptedPlatformPythonInterface(ScriptInterpreterPythonImpl
&interpreter
);
26 llvm::Expected
<StructuredData::GenericSP
>
27 CreatePluginObject(const llvm::StringRef class_name
,
28 ExecutionContext
&exe_ctx
,
29 StructuredData::DictionarySP args_sp
,
30 StructuredData::Generic
*script_obj
= nullptr) override
;
32 llvm::SmallVector
<AbstractMethodRequirement
>
33 GetAbstractMethodRequirements() const override
{
34 return llvm::SmallVector
<AbstractMethodRequirement
>(
36 {"attach_to_process", 2},
37 {"launch_process", 2},
38 {"kill_process", 2}});
41 StructuredData::DictionarySP
ListProcesses() override
;
43 StructuredData::DictionarySP
GetProcessInfo(lldb::pid_t
) override
;
45 Status
AttachToProcess(lldb::ProcessAttachInfoSP attach_info
) override
;
47 Status
LaunchProcess(lldb::ProcessLaunchInfoSP launch_info
) override
;
49 Status
KillProcess(lldb::pid_t pid
) override
;
51 static void Initialize();
53 static void Terminate();
55 static llvm::StringRef
GetPluginNameStatic() {
56 return "ScriptedPlatformPythonInterface";
59 llvm::StringRef
GetPluginName() override
{ return GetPluginNameStatic(); }
61 } // namespace lldb_private
63 #endif // LLDB_ENABLE_PYTHON
64 #endif // LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_INTERFACES_SCRIPTEDPLATFORMPYTHONINTERFACE_H