1 //===-- ObjCPlusPlusLanguage.cpp --------------------------------------*- 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 #include "ObjCPlusPlusLanguage.h" 11 12 #include "lldb/Core/ConstString.h" 13 #include "lldb/Core/PluginManager.h" 14 15 using namespace lldb; 16 using namespace lldb_private; 17 18 void 19 ObjCPlusPlusLanguage::Initialize() 20 { 21 PluginManager::RegisterPlugin (GetPluginNameStatic(), 22 "Objective-C++ Language", 23 CreateInstance); 24 } 25 26 void 27 ObjCPlusPlusLanguage::Terminate() 28 { 29 PluginManager::UnregisterPlugin (CreateInstance); 30 } 31 32 lldb_private::ConstString 33 ObjCPlusPlusLanguage::GetPluginNameStatic() 34 { 35 static ConstString g_name("objcplusplus"); 36 return g_name; 37 } 38 39 40 //------------------------------------------------------------------ 41 // PluginInterface protocol 42 //------------------------------------------------------------------ 43 lldb_private::ConstString 44 ObjCPlusPlusLanguage::GetPluginName() 45 { 46 return GetPluginNameStatic(); 47 } 48 49 uint32_t 50 ObjCPlusPlusLanguage::GetPluginVersion() 51 { 52 return 1; 53 } 54 55 //------------------------------------------------------------------ 56 // Static Functions 57 //------------------------------------------------------------------ 58 Language * 59 ObjCPlusPlusLanguage::CreateInstance (lldb::LanguageType language) 60 { 61 switch (language) 62 { 63 case lldb::eLanguageTypeObjC_plus_plus: 64 return new ObjCPlusPlusLanguage(); 65 default: 66 return nullptr; 67 } 68 } 69