]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/Java/JavaLanguageRuntime.h
MFC r345805: Unify SCSI_STATUS_BUSY retry handling with other cases.
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / source / Plugins / LanguageRuntime / Java / JavaLanguageRuntime.h
1 //===-- JavaLanguageRuntime.h -----------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #ifndef liblldb_JavaLanguageRuntime_h_
11 #define liblldb_JavaLanguageRuntime_h_
12
13 // C Includes
14 // C++ Includes
15 #include <vector>
16 // Other libraries and framework includes
17 // Project includes
18 #include "lldb/Core/PluginInterface.h"
19 #include "lldb/Target/LanguageRuntime.h"
20 #include "lldb/lldb-private.h"
21
22 namespace lldb_private {
23
24 class JavaLanguageRuntime : public LanguageRuntime {
25 public:
26   static void Initialize();
27
28   static void Terminate();
29
30   static lldb_private::LanguageRuntime *
31   CreateInstance(Process *process, lldb::LanguageType language);
32
33   static lldb_private::ConstString GetPluginNameStatic();
34
35   lldb_private::ConstString GetPluginName() override;
36
37   uint32_t GetPluginVersion() override;
38
39   lldb::LanguageType GetLanguageType() const override {
40     return lldb::eLanguageTypeJava;
41   }
42
43   bool GetObjectDescription(Stream &str, ValueObject &object) override {
44     return false;
45   }
46
47   bool GetObjectDescription(Stream &str, Value &value,
48                             ExecutionContextScope *exe_scope) override {
49     return false;
50   }
51
52   lldb::BreakpointResolverSP CreateExceptionResolver(Breakpoint *bkpt,
53                                                      bool catch_bp,
54                                                      bool throw_bp) override {
55     return nullptr;
56   }
57
58   TypeAndOrName FixUpDynamicType(const TypeAndOrName &type_and_or_name,
59                                  ValueObject &static_value) override;
60
61   bool CouldHaveDynamicValue(ValueObject &in_value) override;
62
63   bool GetDynamicTypeAndAddress(ValueObject &in_value,
64                                 lldb::DynamicValueType use_dynamic,
65                                 TypeAndOrName &class_type_or_name,
66                                 Address &address,
67                                 Value::ValueType &value_type) override;
68
69 protected:
70   JavaLanguageRuntime(Process *process);
71
72 private:
73   DISALLOW_COPY_AND_ASSIGN(JavaLanguageRuntime);
74 };
75
76 } // namespace lldb_private
77
78 #endif // liblldb_JavaLanguageRuntime_h_