LanguageRuntime.h revision b66cd074ec097b5b0a6f2ce292f5072aa1217ca6
1//===-- LanguageRuntime.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_LanguageRuntime_h_ 11#define liblldb_LanguageRuntime_h_ 12 13// C Includes 14// C++ Includes 15// Other libraries and framework includes 16// Project includes 17#include "lldb/lldb-include.h" 18#include "lldb/Core/PluginInterface.h" 19#include "lldb/lldb-private.h" 20#include "lldb/Target/ExecutionContextScope.h" 21 22namespace lldb_private { 23 24class LanguageRuntime : 25 public PluginInterface 26{ 27public: 28 virtual 29 ~LanguageRuntime(); 30 31 static LanguageRuntime* 32 FindPlugin (Process *process, lldb::LanguageType language); 33 34 virtual lldb::LanguageType 35 GetLanguageType () const = 0; 36 37 virtual bool 38 GetObjectDescription (Stream &str, ValueObject &object, ExecutionContextScope *exe_scope) = 0; 39 40 virtual lldb::ValueObjectSP 41 GetDynamicValue (lldb::ValueObjectSP in_value, ExecutionContextScope *exe_scope) = 0; 42 43protected: 44 //------------------------------------------------------------------ 45 // Classes that inherit from LanguageRuntime can see and modify these 46 //------------------------------------------------------------------ 47 LanguageRuntime(Process *process); 48 Process *m_process; 49private: 50 DISALLOW_COPY_AND_ASSIGN (LanguageRuntime); 51}; 52 53} // namespace lldb_private 54 55#endif // liblldb_LanguageRuntime_h_ 56