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