]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - include/lldb/Target/CPPLanguageRuntime.h
Vendor import of lldb trunk r290819:
[FreeBSD/FreeBSD.git] / include / lldb / Target / CPPLanguageRuntime.h
1 //===-- CPPLanguageRuntime.h
2 //---------------------------------------------------*- C++ -*-===//
3 //
4 //                     The LLVM Compiler Infrastructure
5 //
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
8 //
9 //===----------------------------------------------------------------------===//
10
11 #ifndef liblldb_CPPLanguageRuntime_h_
12 #define liblldb_CPPLanguageRuntime_h_
13
14 // C Includes
15 // C++ Includes
16 #include <vector>
17 // Other libraries and framework includes
18 // Project includes
19 #include "lldb/Core/PluginInterface.h"
20 #include "lldb/Target/LanguageRuntime.h"
21 #include "lldb/lldb-private.h"
22
23 namespace lldb_private {
24
25 class CPPLanguageRuntime : public LanguageRuntime {
26 public:
27   ~CPPLanguageRuntime() override;
28
29   lldb::LanguageType GetLanguageType() const override {
30     return lldb::eLanguageTypeC_plus_plus;
31   }
32
33   virtual bool IsVTableName(const char *name) = 0;
34
35   bool GetObjectDescription(Stream &str, ValueObject &object) override;
36
37   bool GetObjectDescription(Stream &str, Value &value,
38                             ExecutionContextScope *exe_scope) override;
39
40 protected:
41   //------------------------------------------------------------------
42   // Classes that inherit from CPPLanguageRuntime can see and modify these
43   //------------------------------------------------------------------
44   CPPLanguageRuntime(Process *process);
45
46 private:
47   DISALLOW_COPY_AND_ASSIGN(CPPLanguageRuntime);
48 };
49
50 } // namespace lldb_private
51
52 #endif // liblldb_CPPLanguageRuntime_h_