lldb-forward.h revision 1328b1410eb0f5e03c3b3ee302e9adca3e1b0361
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 <tr1/memory> // for std::tr1::shared_ptr, std::tr1::weak_ptr
16#include "lldb/Utility/SharingPtr.h"
17
18//----------------------------------------------------------------------
19// lldb forward declarations
20//----------------------------------------------------------------------
21namespace lldb_private {
22
23class   ABI;
24class   Address;
25class   AddressImpl;
26class   AddressRange;
27class   AddressResolver;
28class   ArchSpec;
29class   Args;
30class   ASTResultSynthesizer;
31class   Baton;
32class   Block;
33class   Breakpoint;
34class   BreakpointID;
35class   BreakpointIDList;
36class   BreakpointList;
37class   BreakpointLocation;
38class   BreakpointLocationCollection;
39class   BreakpointLocationList;
40class   BreakpointOptions;
41class   BreakpointResolver;
42class   BreakpointSite;
43class   BreakpointSiteList;
44class   BroadcastEventSpec;
45class   Broadcaster;
46class   BroadcasterManager;
47class   CPPLanguageRuntime;
48class   ClangASTContext;
49class   ClangASTImporter;
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   DWARFCallFrameInfo;
74class   DWARFExpression;
75class   DataBuffer;
76class   DataEncoder;
77class   DataExtractor;
78class   Debugger;
79class   Declaration;
80class   Disassembler;
81class   DynamicLoader;
82class   EmulateInstruction;
83class   Error;
84class   Event;
85class   EventData;
86class   ExecutionContext;
87class   ExecutionContextRef;
88class   ExecutionContextRefLocker;
89class   ExecutionContextScope;
90class   FileSpec;
91class   FileSpecList;
92class   Flags;
93class   TypeCategoryImpl;
94class   FormatManager;
95class   FuncUnwinders;
96class   Function;
97class   FunctionInfo;
98class   InlineFunctionInfo;
99class   InputReader;
100class   InstanceSettings;
101class   Instruction;
102class   LanguageRuntime;
103class   LineTable;
104class   Listener;
105class   Log;
106class   LogChannel;
107class   Mangled;
108class   Module;
109class   ModuleList;
110class   ModuleSpec;
111class   Mutex;
112struct  NameSearchContext;
113class   ObjCLanguageRuntime;
114class   ObjectContainer;
115class   OptionGroup;
116class   OptionGroupPlatform;
117class   ObjectFile;
118class   OperatingSystem;
119class   Options;
120class   OptionValue;
121class   NamedOption;
122class   PathMappingList;
123class   Platform;
124class   Process;
125class   ProcessAttachInfo;
126class   ProcessModID;
127class   ProcessInfo;
128class   ProcessInstanceInfo;
129class   ProcessInstanceInfoList;
130class   ProcessInstanceInfoMatch;
131class   ProcessLaunchInfo;
132class   RegisterContext;
133class   RegisterLocation;
134class   RegisterLocationList;
135class   RegisterValue;
136class   RegularExpression;
137class   Scalar;
138class   ScriptInterpreter;
139class   ScriptInterpreterObject;
140#ifndef LLDB_DISABLE_PYTHON
141class   ScriptInterpreterPython;
142struct  ScriptSummaryFormat;
143#endif
144class   SearchFilter;
145class   Section;
146class   SectionImpl;
147class   SectionList;
148class   SourceManager;
149class   SourceManagerImpl;
150class   StackFrame;
151class   StackFrameImpl;
152class   StackFrameList;
153class   StackID;
154class   StopInfo;
155class   Stoppoint;
156class   StoppointCallbackContext;
157class   StoppointLocation;
158class   Stream;
159template <unsigned N> class StreamBuffer;
160class   StreamFile;
161class   StreamString;
162class   StringList;
163class   StringSummaryFormat;
164class   TypeSummaryImpl;
165class   Symbol;
166class   SymbolContext;
167class   SymbolContextList;
168class   SymbolContextScope;
169class   SymbolContextSpecifier;
170class   SymbolFile;
171class   SymbolFileType;
172class   SymbolVendor;
173class   Symtab;
174class   SyntheticChildren;
175class   SyntheticChildrenFrontEnd;
176class   TypeFilterImpl;
177#ifndef LLDB_DISABLE_PYTHON
178class   TypeSyntheticImpl;
179#endif
180class   Target;
181class   TargetList;
182class   Thread;
183class   ThreadList;
184class   ThreadPlan;
185class   ThreadPlanBase;
186class   ThreadPlanRunToAddress;
187class   ThreadPlanStepInstruction;
188class   ThreadPlanStepOut;
189class   ThreadPlanStepOverBreakpoint;
190class   ThreadPlanStepRange;
191class   ThreadPlanStepThrough;
192class   ThreadPlanTracer;
193class   ThreadSpec;
194class   TimeValue;
195class   Type;
196class   TypeImpl;
197class   TypeAndOrName;
198class   TypeList;
199class   TypeListImpl;
200class   TypeMemberImpl;
201class   TypeNameSpecifierImpl;
202class   UUID;
203class   Unwind;
204class   UnwindAssembly;
205class   UnwindPlan;
206class   UnwindTable;
207class   UserSettingsController;
208class   VMRange;
209class   Value;
210struct  TypeFormatImpl;
211class   ValueList;
212class   ValueObject;
213class   ValueObjectChild;
214class   ValueObjectConstResult;
215class   ValueObjectConstResultChild;
216class   ValueObjectConstResultImpl;
217class   ValueObjectList;
218class   Variable;
219class   VariableList;
220class   Watchpoint;
221class   WatchpointList;
222struct  LineEntry;
223
224} // namespace lldb_private
225
226//----------------------------------------------------------------------
227// lldb forward declarations
228//----------------------------------------------------------------------
229namespace lldb {
230
231    typedef std::tr1::shared_ptr<lldb_private::ABI> ABISP;
232    typedef std::tr1::shared_ptr<lldb_private::Baton> BatonSP;
233    typedef std::tr1::shared_ptr<lldb_private::Block> BlockSP;
234    typedef std::tr1::shared_ptr<lldb_private::Breakpoint> BreakpointSP;
235    typedef std::tr1::weak_ptr<lldb_private::Breakpoint> BreakpointWP;
236    typedef std::tr1::shared_ptr<lldb_private::BreakpointSite> BreakpointSiteSP;
237    typedef std::tr1::weak_ptr<lldb_private::BreakpointSite> BreakpointSiteWP;
238    typedef std::tr1::shared_ptr<lldb_private::BreakpointLocation> BreakpointLocationSP;
239    typedef std::tr1::weak_ptr<lldb_private::BreakpointLocation> BreakpointLocationWP;
240    typedef std::tr1::shared_ptr<lldb_private::BreakpointResolver> BreakpointResolverSP;
241    typedef std::tr1::shared_ptr<lldb_private::Broadcaster> BroadcasterSP;
242    typedef std::tr1::shared_ptr<lldb_private::ClangExpressionVariable> ClangExpressionVariableSP;
243    typedef std::tr1::shared_ptr<lldb_private::CommandObject> CommandObjectSP;
244    typedef std::tr1::shared_ptr<lldb_private::Communication> CommunicationSP;
245    typedef std::tr1::shared_ptr<lldb_private::Connection> ConnectionSP;
246    typedef std::tr1::shared_ptr<lldb_private::CompileUnit> CompUnitSP;
247    typedef std::tr1::shared_ptr<lldb_private::DataBuffer> DataBufferSP;
248    typedef std::tr1::shared_ptr<lldb_private::DataExtractor> DataExtractorSP;
249    typedef std::tr1::shared_ptr<lldb_private::Debugger> DebuggerSP;
250    typedef std::tr1::weak_ptr<lldb_private::Debugger> DebuggerWP;
251    typedef std::tr1::shared_ptr<lldb_private::Disassembler> DisassemblerSP;
252    typedef std::tr1::shared_ptr<lldb_private::DynamicLoader> DynamicLoaderSP;
253    typedef std::tr1::shared_ptr<lldb_private::Event> EventSP;
254    typedef std::tr1::shared_ptr<lldb_private::TypeCategoryImpl> TypeCategoryImplSP;
255    typedef std::tr1::shared_ptr<lldb_private::Function> FunctionSP;
256    typedef std::tr1::shared_ptr<lldb_private::InlineFunctionInfo> InlineFunctionInfoSP;
257    typedef std::tr1::shared_ptr<lldb_private::InputReader> InputReaderSP;
258    typedef std::tr1::shared_ptr<lldb_private::InstanceSettings> InstanceSettingsSP;
259    typedef std::tr1::shared_ptr<lldb_private::Instruction> InstructionSP;
260    typedef std::tr1::shared_ptr<lldb_private::LanguageRuntime> LanguageRuntimeSP;
261    typedef std::tr1::shared_ptr<lldb_private::LineTable> LineTableSP;
262    typedef std::tr1::shared_ptr<lldb_private::Listener> ListenerSP;
263    typedef std::tr1::shared_ptr<lldb_private::Log> LogSP;
264    typedef std::tr1::shared_ptr<lldb_private::LogChannel> LogChannelSP;
265    typedef std::tr1::shared_ptr<lldb_private::Module> ModuleSP;
266    typedef std::tr1::weak_ptr<lldb_private::Module> ModuleWP;
267    typedef std::tr1::shared_ptr<lldb_private::ObjectFile> ObjectFileSP;
268    typedef std::tr1::weak_ptr<lldb_private::ObjectFile> ObjectFileWP;
269    typedef std::tr1::shared_ptr<lldb_private::OptionValue> OptionValueSP;
270    typedef std::tr1::shared_ptr<lldb_private::Platform> PlatformSP;
271    typedef std::tr1::shared_ptr<lldb_private::Process> ProcessSP;
272    typedef std::tr1::shared_ptr<lldb_private::ProcessAttachInfo> ProcessAttachInfoSP;
273    typedef std::tr1::shared_ptr<lldb_private::ProcessLaunchInfo> ProcessLaunchInfoSP;
274    typedef std::tr1::weak_ptr<lldb_private::Process> ProcessWP;
275    typedef std::tr1::shared_ptr<lldb_private::RegisterContext> RegisterContextSP;
276    typedef std::tr1::shared_ptr<lldb_private::RegularExpression> RegularExpressionSP;
277    typedef std::tr1::shared_ptr<lldb_private::Section> SectionSP;
278    typedef std::tr1::weak_ptr<lldb_private::Section> SectionWP;
279    typedef std::tr1::shared_ptr<lldb_private::SearchFilter> SearchFilterSP;
280    typedef std::tr1::shared_ptr<lldb_private::ScriptInterpreterObject> ScriptInterpreterObjectSP;
281#ifndef LLDB_DISABLE_PYTHON
282    typedef std::tr1::shared_ptr<lldb_private::ScriptSummaryFormat> ScriptSummaryFormatSP;
283#endif // #ifndef LLDB_DISABLE_PYTHON
284    typedef std::tr1::shared_ptr<lldb_private::StackFrame> StackFrameSP;
285    typedef std::tr1::weak_ptr<lldb_private::StackFrame> StackFrameWP;
286    typedef std::tr1::shared_ptr<lldb_private::StackFrameList> StackFrameListSP;
287    typedef std::tr1::shared_ptr<lldb_private::StopInfo> StopInfoSP;
288    typedef std::tr1::shared_ptr<lldb_private::StoppointLocation> StoppointLocationSP;
289    typedef std::tr1::shared_ptr<lldb_private::Stream> StreamSP;
290    typedef std::tr1::shared_ptr<lldb_private::StringSummaryFormat> StringTypeSummaryImplSP;
291    typedef std::tr1::shared_ptr<lldb_private::TypeSummaryImpl> TypeSummaryImplSP;
292    typedef std::tr1::shared_ptr<lldb_private::TypeNameSpecifierImpl> TypeNameSpecifierImplSP;
293    typedef std::tr1::shared_ptr<lldb_private::SymbolFile> SymbolFileSP;
294    typedef std::tr1::shared_ptr<lldb_private::SymbolFileType> SymbolFileTypeSP;
295    typedef std::tr1::weak_ptr<lldb_private::SymbolFileType> SymbolFileTypeWP;
296    typedef std::tr1::shared_ptr<lldb_private::SymbolContextSpecifier> SymbolContextSpecifierSP;
297    typedef std::tr1::shared_ptr<lldb_private::SyntheticChildren> SyntheticChildrenSP;
298    typedef std::tr1::shared_ptr<lldb_private::SyntheticChildrenFrontEnd> SyntheticChildrenFrontEndSP;
299    typedef std::tr1::shared_ptr<lldb_private::TypeFilterImpl> TypeFilterImplSP;
300#ifndef LLDB_DISABLE_PYTHON
301    typedef std::tr1::shared_ptr<lldb_private::TypeSyntheticImpl> TypeSyntheticImplSP;
302#endif
303    typedef std::tr1::shared_ptr<lldb_private::Target> TargetSP;
304    typedef std::tr1::weak_ptr<lldb_private::Target> TargetWP;
305    typedef std::tr1::shared_ptr<lldb_private::Thread> ThreadSP;
306    typedef std::tr1::weak_ptr<lldb_private::Thread> ThreadWP;
307    typedef std::tr1::shared_ptr<lldb_private::ThreadPlan> ThreadPlanSP;
308    typedef std::tr1::shared_ptr<lldb_private::ThreadPlanTracer> ThreadPlanTracerSP;
309    typedef std::tr1::shared_ptr<lldb_private::Type> TypeSP;
310    typedef std::tr1::weak_ptr<lldb_private::Type> TypeWP;
311    typedef std::tr1::shared_ptr<lldb_private::TypeImpl> TypeImplSP;
312    typedef std::tr1::shared_ptr<lldb_private::FuncUnwinders> FuncUnwindersSP;
313    typedef std::tr1::shared_ptr<lldb_private::UserSettingsController> UserSettingsControllerSP;
314    typedef std::tr1::weak_ptr<lldb_private::UserSettingsController> UserSettingsControllerWP;
315    typedef std::tr1::shared_ptr<lldb_private::UnwindPlan> UnwindPlanSP;
316    typedef lldb_private::SharingPtr<lldb_private::ValueObject> ValueObjectSP;
317    typedef std::tr1::shared_ptr<lldb_private::Value> ValueSP;
318    typedef std::tr1::shared_ptr<lldb_private::TypeFormatImpl> TypeFormatImplSP;
319    typedef std::tr1::shared_ptr<lldb_private::ValueList> ValueListSP;
320    typedef std::tr1::shared_ptr<lldb_private::Variable> VariableSP;
321    typedef std::tr1::shared_ptr<lldb_private::VariableList> VariableListSP;
322    typedef std::tr1::shared_ptr<lldb_private::ValueObjectList> ValueObjectListSP;
323    typedef std::tr1::shared_ptr<lldb_private::Watchpoint> WatchpointSP;
324
325} // namespace lldb
326
327
328#endif  // #if defined(__cplusplus)
329#endif  // LLDB_lldb_forward_h_
330