]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/llvm/tools/lldb/include/lldb/lldb-forward.h
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / llvm / tools / lldb / include / lldb / lldb-forward.h
1 //===-- lldb-forward.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 LLDB_lldb_forward_h_
11 #define LLDB_lldb_forward_h_
12
13 #if defined(__cplusplus)
14
15 #include "lldb/Utility/SharingPtr.h"
16
17 //----------------------------------------------------------------------
18 // lldb forward declarations
19 //----------------------------------------------------------------------
20 namespace lldb_private {
21
22 class   ABI;
23 class   Address;
24 class   AddressImpl;
25 class   AddressRange;
26 class   AddressResolver;
27 class   ArchSpec;
28 class   Args;
29 class   ASTResultSynthesizer;
30 class   Baton;
31 class   Block;
32 class   Breakpoint;
33 class   BreakpointID;
34 class   BreakpointIDList;
35 class   BreakpointList;
36 class   BreakpointLocation;
37 class   BreakpointLocationCollection;
38 class   BreakpointLocationList;
39 class   BreakpointOptions;
40 class   BreakpointResolver;
41 class   BreakpointSite;
42 class   BreakpointSiteList;
43 class   BroadcastEventSpec;
44 class   Broadcaster;
45 class   BroadcasterManager;
46 class   CPPLanguageRuntime;
47 class   ClangASTContext;
48 class   ClangASTImporter;
49 class   ClangASTMetadata;
50 class   ClangASTSource;
51 class   ClangASTType;
52 class   ClangNamespaceDecl;
53 class   ClangExpression;
54 class   ClangExpressionDeclMap;
55 class   ClangExpressionParser;
56 class   ClangExpressionVariable;
57 class   ClangExpressionVariableList;
58 class   ClangExpressionVariableList;
59 class   ClangExpressionVariables;
60 class   ClangFunction;
61 class   ClangPersistentVariables;
62 class   ClangUserExpression;
63 class   ClangUtilityFunction;
64 class   CommandInterpreter;
65 class   CommandObject;
66 class   CommandReturnObject;
67 class   Communication;
68 class   CompileUnit;
69 class   Condition;
70 class   Connection;
71 class   ConnectionFileDescriptor;
72 class   ConstString;
73 class   CXXSyntheticChildren;
74 class   DWARFCallFrameInfo;
75 class   DWARFExpression;
76 class   DataBuffer;
77 class   DataEncoder;
78 class   DataExtractor;
79 class   Debugger;
80 class   Declaration;
81 class   Disassembler;
82 struct  DumpValueObjectOptions;
83 class   DynamicLibrary;
84 class   DynamicLoader;
85 class   Editline;
86 class   EmulateInstruction;
87 class   Error;
88 class   EvaluateExpressionOptions;
89 class   Event;
90 class   EventData;
91 class   ExecutionContext;
92 class   ExecutionContextRef;
93 class   ExecutionContextRefLocker;
94 class   ExecutionContextScope;
95 class   File;
96 class   FileSpec;
97 class   FileSpecList;
98 class   Flags;
99 class   TypeCategoryImpl;
100 class   FormatManager;
101 class   FormattersMatchCandidate;
102 class   FuncUnwinders;
103 class   Function;
104 class   FunctionInfo;
105 class   InlineFunctionInfo;
106 class   Instruction;
107 class   InstructionList;
108 class   IOHandler;
109 class   IRExecutionUnit;
110 class   LanguageRuntime;
111 class   SystemRuntime;
112 class   LineTable;
113 class   Listener;
114 class   Log;
115 class   LogChannel;
116 class   Mangled;
117 class   Materializer;
118 class   Module;
119 class   ModuleList;
120 class   ModuleSpec;
121 class   ModuleSpecList;
122 class   Mutex;
123 struct  NameSearchContext;
124 class   ObjCLanguageRuntime;
125 class   ObjectContainer;
126 class   OptionGroup;
127 class   OptionGroupOptions;
128 class   OptionGroupPlatform;
129 class   ObjectFile;
130 class   OperatingSystem;
131 class   Options;
132 class   OptionValue;
133 class   OptionValueArch;
134 class   OptionValueArgs;
135 class   OptionValueArray;
136 class   OptionValueBoolean;
137 class   OptionValueDictionary;
138 class   OptionValueEnumeration;
139 class   OptionValueFileSpec;
140 class   OptionValueFileSpecList;
141 class   OptionValueFormat;
142 class   OptionValuePathMappings;
143 class   OptionValueProperties;
144 class   OptionValueRegex;
145 class   OptionValueSInt64;
146 class   OptionValueString;
147 class   OptionValueUInt64;
148 class   OptionValueUUID;
149 class   NamedOption;
150 class   PathMappingList;
151 class   Platform;
152 class   Process;
153 class   ProcessAttachInfo;
154 class   ProcessModID;
155 class   ProcessInfo;
156 class   ProcessInstanceInfo;
157 class   ProcessInstanceInfoList;
158 class   ProcessInstanceInfoMatch;
159 class   ProcessLaunchInfo;
160 class   Property;
161 struct  PropertyDefinition;
162 class   PythonArray;
163 class   PythonDictionary;
164 class   PythonInteger;
165 class   PythonObject;
166 class   PythonString;
167 class   RegisterCheckpoint;
168 class   RegisterContext;
169 class   RegisterLocation;
170 class   RegisterLocationList;
171 class   RegisterValue;
172 class   RegularExpression;
173 class   Scalar;
174 class   ScriptInterpreter;
175 class   ScriptInterpreterLocker;
176 class   ScriptInterpreterObject;
177 #ifndef LLDB_DISABLE_PYTHON
178 class   ScriptInterpreterPython;
179 struct  ScriptSummaryFormat;
180 #endif
181 class   SearchFilter;
182 class   Section;
183 class   SectionImpl;
184 class   SectionList;
185 class   SectionLoadHistory;
186 class   SectionLoadList;
187 class   Settings;
188 class   SourceManager;
189 class   SourceManagerImpl;
190 class   StackFrame;
191 class   StackFrameImpl;
192 class   StackFrameList;
193 class   StackID;
194 class   StopInfo;
195 class   Stoppoint;
196 class   StoppointCallbackContext;
197 class   StoppointLocation;
198 class   Stream;
199 template <unsigned N> class StreamBuffer;
200 class   StreamFile;
201 class   StreamString;
202 class   StringList;
203 struct  StringSummaryFormat;
204 class   TypeSummaryImpl;
205 class   Symbol;
206 class   SymbolContext;
207 class   SymbolContextList;
208 class   SymbolContextScope;
209 class   SymbolContextSpecifier;
210 class   SymbolFile;
211 class   SymbolFileType;
212 class   SymbolVendor;
213 class   Symtab;
214 class   SyntheticChildren;
215 class   SyntheticChildrenFrontEnd;
216 class   TypeFilterImpl;
217 #ifndef LLDB_DISABLE_PYTHON
218 class   ScriptedSyntheticChildren;
219 #endif
220 class   Queue;
221 class   QueueItem;
222 class   QueueImpl;
223 class   Target;
224 class   TargetList;
225 class   Thread;
226 class   ThreadList;
227 class   ThreadPlan;
228 class   ThreadPlanBase;
229 class   ThreadPlanRunToAddress;
230 class   ThreadPlanStepInstruction;
231 class   ThreadPlanStepOut;
232 class   ThreadPlanStepOverBreakpoint;
233 class   ThreadPlanStepRange;
234 class   ThreadPlanStepThrough;
235 class   ThreadPlanTracer;
236 class   ThreadSpec;
237 class   TimeValue;
238 class   Type;
239 class   TypeAndOrName;
240 class   TypeCategoryMap;
241 class   TypeImpl;
242 class   TypeList;
243 class   TypeListImpl;
244 class   TypeMemberImpl;
245 class   TypeNameSpecifierImpl;
246 class   TypePair;
247 class   UUID;
248 class   Unwind;
249 class   UnwindAssembly;
250 class   UnwindPlan;
251 class   UnwindTable;
252 class   VMRange;
253 class   Value;
254 class   TypeFormatImpl;
255 class   ValueList;
256 class   ValueObject;
257 class   ValueObjectChild;
258 class   ValueObjectConstResult;
259 class   ValueObjectConstResultChild;
260 class   ValueObjectConstResultImpl;
261 class   ValueObjectList;
262 class   ValueObjectPrinter;
263 class   Variable;
264 class   VariableList;
265 class   Watchpoint;
266 class   WatchpointList;
267 class   WatchpointOptions;
268 struct  LineEntry;
269
270 } // namespace lldb_private
271
272 //----------------------------------------------------------------------
273 // lldb forward declarations
274 //----------------------------------------------------------------------
275 namespace lldb {
276     
277     typedef std::shared_ptr<lldb_private::ABI> ABISP;
278     typedef std::shared_ptr<lldb_private::Baton> BatonSP;
279     typedef std::shared_ptr<lldb_private::Block> BlockSP;
280     typedef std::shared_ptr<lldb_private::Breakpoint> BreakpointSP;
281     typedef std::weak_ptr<lldb_private::Breakpoint> BreakpointWP;
282     typedef std::shared_ptr<lldb_private::BreakpointSite> BreakpointSiteSP;
283     typedef std::weak_ptr<lldb_private::BreakpointSite> BreakpointSiteWP;
284     typedef std::shared_ptr<lldb_private::BreakpointLocation> BreakpointLocationSP;
285     typedef std::weak_ptr<lldb_private::BreakpointLocation> BreakpointLocationWP;
286     typedef std::shared_ptr<lldb_private::BreakpointResolver> BreakpointResolverSP;
287     typedef std::shared_ptr<lldb_private::Broadcaster> BroadcasterSP;
288     typedef std::shared_ptr<lldb_private::ClangExpressionVariable> ClangExpressionVariableSP;
289     typedef std::shared_ptr<lldb_private::CommandObject> CommandObjectSP;
290     typedef std::shared_ptr<lldb_private::Communication> CommunicationSP;
291     typedef std::shared_ptr<lldb_private::Connection> ConnectionSP;
292     typedef std::shared_ptr<lldb_private::CompileUnit> CompUnitSP;
293     typedef std::shared_ptr<lldb_private::DataBuffer> DataBufferSP;
294     typedef std::shared_ptr<lldb_private::DataExtractor> DataExtractorSP;
295     typedef std::shared_ptr<lldb_private::Debugger> DebuggerSP;
296     typedef std::weak_ptr<lldb_private::Debugger> DebuggerWP;
297     typedef std::shared_ptr<lldb_private::Disassembler> DisassemblerSP;
298     typedef std::shared_ptr<lldb_private::DynamicLibrary> DynamicLibrarySP;
299     typedef std::shared_ptr<lldb_private::DynamicLoader> DynamicLoaderSP;
300     typedef std::shared_ptr<lldb_private::Event> EventSP;
301     typedef std::shared_ptr<lldb_private::ExecutionContextRef> ExecutionContextRefSP;
302     typedef std::shared_ptr<lldb_private::File> FileSP;
303     typedef std::shared_ptr<lldb_private::Function> FunctionSP;
304     typedef std::shared_ptr<lldb_private::FuncUnwinders> FuncUnwindersSP;
305     typedef std::shared_ptr<lldb_private::InlineFunctionInfo> InlineFunctionInfoSP;
306     typedef std::shared_ptr<lldb_private::Instruction> InstructionSP;
307     typedef std::shared_ptr<lldb_private::IOHandler> IOHandlerSP;
308     typedef std::shared_ptr<lldb_private::LanguageRuntime> LanguageRuntimeSP;
309     typedef std::shared_ptr<lldb_private::SystemRuntime> SystemRuntimeSP;
310     typedef std::shared_ptr<lldb_private::LineTable> LineTableSP;
311     typedef std::shared_ptr<lldb_private::Listener> ListenerSP;
312     typedef std::shared_ptr<lldb_private::LogChannel> LogChannelSP;
313     typedef std::shared_ptr<lldb_private::Module> ModuleSP;
314     typedef std::weak_ptr<lldb_private::Module> ModuleWP;
315     typedef std::shared_ptr<lldb_private::ObjectFile> ObjectFileSP;
316     typedef std::weak_ptr<lldb_private::ObjectFile> ObjectFileWP;
317     typedef std::shared_ptr<lldb_private::OptionValue> OptionValueSP;
318     typedef std::weak_ptr<lldb_private::OptionValue> OptionValueWP;
319     typedef std::shared_ptr<lldb_private::OptionValueArch> OptionValueArchSP;
320     typedef std::shared_ptr<lldb_private::OptionValueArgs> OptionValueArgsSP;
321     typedef std::shared_ptr<lldb_private::OptionValueArray> OptionValueArraySP;
322     typedef std::shared_ptr<lldb_private::OptionValueBoolean> OptionValueBooleanSP;
323     typedef std::shared_ptr<lldb_private::OptionValueDictionary> OptionValueDictionarySP;
324     typedef std::shared_ptr<lldb_private::OptionValueFileSpec> OptionValueFileSpecSP;
325     typedef std::shared_ptr<lldb_private::OptionValueFileSpecList> OptionValueFileSpecListSP;
326     typedef std::shared_ptr<lldb_private::OptionValueFormat> OptionValueFormatSP;
327     typedef std::shared_ptr<lldb_private::OptionValuePathMappings> OptionValuePathMappingsSP;
328     typedef std::shared_ptr<lldb_private::OptionValueProperties> OptionValuePropertiesSP;
329     typedef std::shared_ptr<lldb_private::OptionValueRegex> OptionValueRegexSP;
330     typedef std::shared_ptr<lldb_private::OptionValueSInt64> OptionValueSInt64SP;
331     typedef std::shared_ptr<lldb_private::OptionValueString> OptionValueStringSP;
332     typedef std::shared_ptr<lldb_private::OptionValueUInt64> OptionValueUInt64SP;
333     typedef std::shared_ptr<lldb_private::OptionValueUUID> OptionValueUUIDSP;
334     typedef std::shared_ptr<lldb_private::Platform> PlatformSP;
335     typedef std::shared_ptr<lldb_private::Process> ProcessSP;
336     typedef std::shared_ptr<lldb_private::ProcessAttachInfo> ProcessAttachInfoSP;
337     typedef std::shared_ptr<lldb_private::ProcessLaunchInfo> ProcessLaunchInfoSP;
338     typedef std::weak_ptr<lldb_private::Process> ProcessWP;
339     typedef std::shared_ptr<lldb_private::Property> PropertySP;
340     typedef std::shared_ptr<lldb_private::RegisterCheckpoint> RegisterCheckpointSP;
341     typedef std::shared_ptr<lldb_private::RegisterContext> RegisterContextSP;
342     typedef std::shared_ptr<lldb_private::RegularExpression> RegularExpressionSP;
343     typedef std::shared_ptr<lldb_private::Queue> QueueSP;
344     typedef std::weak_ptr<lldb_private::Queue> QueueWP;
345     typedef std::shared_ptr<lldb_private::QueueItem> QueueItemSP;
346     typedef std::shared_ptr<lldb_private::ScriptInterpreterObject> ScriptInterpreterObjectSP;
347 #ifndef LLDB_DISABLE_PYTHON
348     typedef std::shared_ptr<lldb_private::ScriptSummaryFormat> ScriptSummaryFormatSP;
349 #endif // #ifndef LLDB_DISABLE_PYTHON
350     typedef std::shared_ptr<lldb_private::Section> SectionSP;
351     typedef std::weak_ptr<lldb_private::Section> SectionWP;
352     typedef std::shared_ptr<lldb_private::SectionLoadList> SectionLoadListSP;
353     typedef std::shared_ptr<lldb_private::SearchFilter> SearchFilterSP;
354     typedef std::shared_ptr<lldb_private::Settings> SettingsSP;
355     typedef std::shared_ptr<lldb_private::StackFrame> StackFrameSP;
356     typedef std::weak_ptr<lldb_private::StackFrame> StackFrameWP;
357     typedef std::shared_ptr<lldb_private::StackFrameList> StackFrameListSP;
358     typedef std::shared_ptr<lldb_private::StopInfo> StopInfoSP;
359     typedef std::shared_ptr<lldb_private::StoppointLocation> StoppointLocationSP;
360     typedef std::shared_ptr<lldb_private::Stream> StreamSP;
361     typedef std::weak_ptr<lldb_private::Stream> StreamWP;
362     typedef std::shared_ptr<lldb_private::StreamFile> StreamFileSP;
363     typedef std::shared_ptr<lldb_private::StringSummaryFormat> StringTypeSummaryImplSP;
364     typedef std::shared_ptr<lldb_private::SymbolFile> SymbolFileSP;
365     typedef std::shared_ptr<lldb_private::SymbolFileType> SymbolFileTypeSP;
366     typedef std::weak_ptr<lldb_private::SymbolFileType> SymbolFileTypeWP;
367     typedef std::shared_ptr<lldb_private::SymbolContextSpecifier> SymbolContextSpecifierSP;
368     typedef std::shared_ptr<lldb_private::SyntheticChildren> SyntheticChildrenSP;
369     typedef std::shared_ptr<lldb_private::SyntheticChildrenFrontEnd> SyntheticChildrenFrontEndSP;
370     typedef std::shared_ptr<lldb_private::Target> TargetSP;
371     typedef std::weak_ptr<lldb_private::Target> TargetWP;
372     typedef std::shared_ptr<lldb_private::Thread> ThreadSP;
373     typedef std::weak_ptr<lldb_private::Thread> ThreadWP;
374     typedef std::shared_ptr<lldb_private::ThreadPlan> ThreadPlanSP;
375     typedef std::shared_ptr<lldb_private::ThreadPlanTracer> ThreadPlanTracerSP;
376     typedef std::shared_ptr<lldb_private::Type> TypeSP;
377     typedef std::weak_ptr<lldb_private::Type> TypeWP;
378     typedef std::shared_ptr<lldb_private::TypeCategoryImpl> TypeCategoryImplSP;
379     typedef std::shared_ptr<lldb_private::TypeImpl> TypeImplSP;
380     typedef std::shared_ptr<lldb_private::TypeFilterImpl> TypeFilterImplSP;
381     typedef std::shared_ptr<lldb_private::TypeFormatImpl> TypeFormatImplSP;
382     typedef std::shared_ptr<lldb_private::TypeNameSpecifierImpl> TypeNameSpecifierImplSP;
383     typedef std::shared_ptr<lldb_private::TypeSummaryImpl> TypeSummaryImplSP;
384 #ifndef LLDB_DISABLE_PYTHON
385     typedef std::shared_ptr<lldb_private::ScriptedSyntheticChildren> ScriptedSyntheticChildrenSP;
386 #endif
387     typedef std::shared_ptr<lldb_private::UnwindAssembly> UnwindAssemblySP;
388     typedef std::shared_ptr<lldb_private::UnwindPlan> UnwindPlanSP;
389     typedef lldb_private::SharingPtr<lldb_private::ValueObject> ValueObjectSP;
390     typedef std::shared_ptr<lldb_private::Value> ValueSP;
391     typedef std::shared_ptr<lldb_private::ValueList> ValueListSP;
392     typedef std::shared_ptr<lldb_private::Variable> VariableSP;
393     typedef std::shared_ptr<lldb_private::VariableList> VariableListSP;
394     typedef std::shared_ptr<lldb_private::ValueObjectList> ValueObjectListSP;
395     typedef std::shared_ptr<lldb_private::Watchpoint> WatchpointSP;
396     
397 } // namespace lldb
398
399
400 #endif  // #if defined(__cplusplus)
401 #endif  // LLDB_lldb_forward_h_