1 //===-- PlatformMacOSX.h ----------------------------------------*- 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 #ifndef liblldb_PlatformMacOSX_h_
11 #define liblldb_PlatformMacOSX_h_
12 
13 // C Includes
14 // C++ Includes
15 // Other libraries and framework includes
16 // Project includes
17 #include "PlatformDarwin.h"
18 
19 class PlatformMacOSX : public PlatformDarwin
20 {
21 public:
22 
23     //------------------------------------------------------------
24     // Class functions
25     //------------------------------------------------------------
26     static lldb_private::Platform*
27     CreateInstance (bool force, const lldb_private::ArchSpec *arch);
28 
29     static void
30     Initialize ();
31 
32     static void
33     Terminate ();
34 
35     static lldb_private::ConstString
36     GetPluginNameStatic (bool is_host);
37 
38     static const char *
39     GetDescriptionStatic(bool is_host);
40 
41     //------------------------------------------------------------
42     // Class Methods
43     //------------------------------------------------------------
44     PlatformMacOSX (bool is_host);
45 
46     virtual
47     ~PlatformMacOSX();
48 
49     //------------------------------------------------------------
50     // lldb_private::PluginInterface functions
51     //------------------------------------------------------------
52     virtual lldb_private::ConstString
GetPluginName()53     GetPluginName()
54     {
55         return GetPluginNameStatic (IsHost());
56     }
57 
58     virtual uint32_t
GetPluginVersion()59     GetPluginVersion()
60     {
61         return 1;
62     }
63 
64     virtual const char *
GetDescription()65     GetDescription ()
66     {
67         return GetDescriptionStatic (IsHost());
68     }
69 
70     virtual lldb_private::Error
71     GetFile (const lldb_private::FileSpec &platform_file,
72              const lldb_private::UUID *uuid_ptr,
73              lldb_private::FileSpec &local_file);
74 
75     virtual bool
76     GetSupportedArchitectureAtIndex (uint32_t idx,
77                                      lldb_private::ArchSpec &arch);
78 
79 private:
80     DISALLOW_COPY_AND_ASSIGN (PlatformMacOSX);
81 
82 };
83 
84 #endif  // liblldb_PlatformMacOSX_h_
85