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