15f9d3106SEnrico Granata //===-- CPlusPlusLanguage.cpp --------------------------------------*- C++ -*-===// 25f9d3106SEnrico Granata // 35f9d3106SEnrico Granata // The LLVM Compiler Infrastructure 45f9d3106SEnrico Granata // 55f9d3106SEnrico Granata // This file is distributed under the University of Illinois Open Source 65f9d3106SEnrico Granata // License. See LICENSE.TXT for details. 75f9d3106SEnrico Granata // 85f9d3106SEnrico Granata //===----------------------------------------------------------------------===// 95f9d3106SEnrico Granata 105f9d3106SEnrico Granata #include "CPlusPlusLanguage.h" 115f9d3106SEnrico Granata 125f9d3106SEnrico Granata #include "lldb/Core/ConstString.h" 135f9d3106SEnrico Granata #include "lldb/Core/PluginManager.h" 145f9d3106SEnrico Granata 155f9d3106SEnrico Granata using namespace lldb; 165f9d3106SEnrico Granata using namespace lldb_private; 175f9d3106SEnrico Granata 185f9d3106SEnrico Granata void 195f9d3106SEnrico Granata CPlusPlusLanguage::Initialize() 205f9d3106SEnrico Granata { 215f9d3106SEnrico Granata PluginManager::RegisterPlugin (GetPluginNameStatic(), 225f9d3106SEnrico Granata "C++ Language", 235f9d3106SEnrico Granata CreateInstance); 245f9d3106SEnrico Granata } 255f9d3106SEnrico Granata 265f9d3106SEnrico Granata void 275f9d3106SEnrico Granata CPlusPlusLanguage::Terminate() 285f9d3106SEnrico Granata { 295f9d3106SEnrico Granata PluginManager::UnregisterPlugin (CreateInstance); 305f9d3106SEnrico Granata } 315f9d3106SEnrico Granata 325f9d3106SEnrico Granata lldb_private::ConstString 335f9d3106SEnrico Granata CPlusPlusLanguage::GetPluginNameStatic() 345f9d3106SEnrico Granata { 355f9d3106SEnrico Granata static ConstString g_name("cplusplus"); 365f9d3106SEnrico Granata return g_name; 375f9d3106SEnrico Granata } 385f9d3106SEnrico Granata 395f9d3106SEnrico Granata 405f9d3106SEnrico Granata //------------------------------------------------------------------ 415f9d3106SEnrico Granata // PluginInterface protocol 425f9d3106SEnrico Granata //------------------------------------------------------------------ 435f9d3106SEnrico Granata lldb_private::ConstString 445f9d3106SEnrico Granata CPlusPlusLanguage::GetPluginName() 455f9d3106SEnrico Granata { 465f9d3106SEnrico Granata return GetPluginNameStatic(); 475f9d3106SEnrico Granata } 485f9d3106SEnrico Granata 495f9d3106SEnrico Granata uint32_t 505f9d3106SEnrico Granata CPlusPlusLanguage::GetPluginVersion() 515f9d3106SEnrico Granata { 525f9d3106SEnrico Granata return 1; 535f9d3106SEnrico Granata } 545f9d3106SEnrico Granata 555f9d3106SEnrico Granata //------------------------------------------------------------------ 565f9d3106SEnrico Granata // Static Functions 575f9d3106SEnrico Granata //------------------------------------------------------------------ 585f9d3106SEnrico Granata Language * 595f9d3106SEnrico Granata CPlusPlusLanguage::CreateInstance (lldb::LanguageType language) 605f9d3106SEnrico Granata { 61*578c8a78SEnrico Granata if (Language::LanguageIsCPlusPlus(language)) 625f9d3106SEnrico Granata return new CPlusPlusLanguage(); 635f9d3106SEnrico Granata return nullptr; 645f9d3106SEnrico Granata } 65