]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp
Vendor import of lldb trunk r290819:
[FreeBSD/FreeBSD.git] / source / Plugins / Language / ObjCPlusPlus / ObjCPlusPlusLanguage.cpp
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 }