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