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