1 //===-- PlatformiOSSimulator.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_PlatformiOSSimulator_h_
11 #define liblldb_PlatformiOSSimulator_h_
12 
13 // C Includes
14 // C++ Includes
15 // Other libraries and framework includes
16 // Project includes
17 #include "PlatformDarwin.h"
18 
19 class PlatformiOSSimulator : 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 ();
37 
38     static const char *
39     GetDescriptionStatic();
40 
41     //------------------------------------------------------------
42     // Class Methods
43     //------------------------------------------------------------
44     PlatformiOSSimulator ();
45 
46     virtual
47     ~PlatformiOSSimulator();
48 
49     //------------------------------------------------------------
50     // lldb_private::PluginInterface functions
51     //------------------------------------------------------------
52     virtual lldb_private::ConstString
GetPluginName()53     GetPluginName()
54     {
55         return GetPluginNameStatic();
56     }
57 
58     virtual uint32_t
GetPluginVersion()59     GetPluginVersion()
60     {
61         return 1;
62     }
63 
64     //------------------------------------------------------------
65     // lldb_private::Platform functions
66     //------------------------------------------------------------
67     virtual lldb_private::Error
68     ResolveExecutable (const lldb_private::FileSpec &exe_file,
69                        const lldb_private::ArchSpec &arch,
70                        lldb::ModuleSP &module_sp,
71                        const lldb_private::FileSpecList *module_search_paths_ptr);
72 
73     virtual const char *
GetDescription()74     GetDescription ()
75     {
76         return GetDescriptionStatic();
77     }
78 
79     virtual void
80     GetStatus (lldb_private::Stream &strm);
81 
82     virtual lldb_private::Error
83     GetFile (const lldb_private::FileSpec &platform_file,
84              const lldb_private::UUID *uuid_ptr,
85              lldb_private::FileSpec &local_file);
86 
87     virtual lldb_private::Error
88     GetSharedModule (const lldb_private::ModuleSpec &module_spec,
89                      lldb::ModuleSP &module_sp,
90                      const lldb_private::FileSpecList *module_search_paths_ptr,
91                      lldb::ModuleSP *old_module_sp_ptr,
92                      bool *did_create_ptr);
93 
94     virtual uint32_t
95     FindProcesses (const lldb_private::ProcessInstanceInfoMatch &match_info,
96                    lldb_private::ProcessInstanceInfoList &process_infos);
97 
98     virtual bool
99     GetSupportedArchitectureAtIndex (uint32_t idx,
100                                      lldb_private::ArchSpec &arch);
101 
102 protected:
103     std::string m_sdk_directory;
104     std::string m_build_update;
105     //std::vector<FileSpec> m_device_support_os_dirs;
106 
107     const char *
108     GetSDKDirectory();
109 
110 private:
111     DISALLOW_COPY_AND_ASSIGN (PlatformiOSSimulator);
112 
113 };
114 
115 #endif  // liblldb_PlatformiOSSimulator_h_
116