lldb-forward.h revision 0a8dcacde404c520f1131c641041dceb9f68b6fa
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   Mutex;
111struct  NameSearchContext;
112class   ObjCLanguageRuntime;
113class   ObjectContainer;
114class   OptionGroup;
115class   OptionGroupPlatform;
116class   ObjectFile;
117class   OperatingSystem;
118class   Options;
119class   OptionValue;
120class   NamedOption;
121class   PathMappingList;
122class   Platform;
123class   Process;
124class   ProcessAttachInfo;
125class   ProcessModID;
126class   ProcessInfo;
127class   ProcessInstanceInfo;
128class   ProcessInstanceInfoList;
129class   ProcessInstanceInfoMatch;
130class   ProcessLaunchInfo;
131class   RegisterContext;
132class   RegisterLocation;
133class   RegisterLocationList;
134class   RegisterValue;
135class   RegularExpression;
136class   Scalar;
137class   ScriptInterpreter;
138#ifndef LLDB_DISABLE_PYTHON
139class   ScriptInterpreterPython;
140struct  ScriptSummaryFormat;
141#endif
142class   SearchFilter;
143class   Section;
144class   SectionImpl;
145class   SectionList;
146class   SourceManager;
147class   SourceManagerImpl;
148class   StackFrame;
149class   StackFrameImpl;
150class   StackFrameList;
151class   StackID;
152class   StopInfo;
153class   Stoppoint;
154class   StoppointCallbackContext;
155class   StoppointLocation;
156class   Stream;
157template <unsigned N> class StreamBuffer;
158class   StreamFile;
159class   StreamString;
160class   StringList;
161class   StringSummaryFormat;
162class   TypeSummaryImpl;
163class   Symbol;
164class   SymbolContext;
165class   SymbolContextList;
166class   SymbolContextScope;
167class   SymbolContextSpecifier;
168class   SymbolFile;
169class   SymbolFileType;
170class   SymbolVendor;
171class   Symtab;
172class   SyntheticChildren;
173class   SyntheticChildrenFrontEnd;
174class   TypeFilterImpl;
175#ifndef LLDB_DISABLE_PYTHON
176class   TypeSyntheticImpl;
177#endif
178class   Target;
179class   TargetList;
180class   Thread;
181class   ThreadList;
182class   ThreadPlan;
183class   ThreadPlanBase;
184class   ThreadPlanRunToAddress;
185class   ThreadPlanStepInstruction;
186class   ThreadPlanStepOut;
187class   ThreadPlanStepOverBreakpoint;
188class   ThreadPlanStepRange;
189class   ThreadPlanStepThrough;
190class   ThreadPlanTracer;
191class   ThreadSpec;
192class   TimeValue;
193class   Type;
194class   TypeImpl;
195class   TypeAndOrName;
196class   TypeList;
197class   TypeListImpl;
198class   TypeMemberImpl;
199class   TypeNameSpecifierImpl;
200class   UUID;
201class   Unwind;
202class   UnwindAssembly;
203class   UnwindPlan;
204class   UnwindTable;
205class   UserSettingsController;
206class   VMRange;
207class   Value;
208struct  TypeFormatImpl;
209class   ValueList;
210class   ValueObject;
211class   ValueObjectChild;
212class   ValueObjectConstResult;
213class   ValueObjectConstResultChild;
214class   ValueObjectConstResultImpl;
215class   ValueObjectList;
216class   Variable;
217class   VariableList;
218class   Watchpoint;
219class   WatchpointList;
220struct  LineEntry;
221
222} // namespace lldb_private
223
224//----------------------------------------------------------------------
225// lldb forward declarations
226//----------------------------------------------------------------------
227namespace lldb {
228
229    typedef std::tr1::shared_ptr<lldb_private::ABI> ABISP;
230    typedef std::tr1::shared_ptr<lldb_private::Baton> BatonSP;
231    typedef std::tr1::shared_ptr<lldb_private::Block> BlockSP;
232    typedef std::tr1::shared_ptr<lldb_private::Breakpoint> BreakpointSP;
233    typedef std::tr1::weak_ptr<lldb_private::Breakpoint> BreakpointWP;
234    typedef std::tr1::shared_ptr<lldb_private::BreakpointSite> BreakpointSiteSP;
235    typedef std::tr1::weak_ptr<lldb_private::BreakpointSite> BreakpointSiteWP;
236    typedef std::tr1::shared_ptr<lldb_private::BreakpointLocation> BreakpointLocationSP;
237    typedef std::tr1::weak_ptr<lldb_private::BreakpointLocation> BreakpointLocationWP;
238    typedef std::tr1::shared_ptr<lldb_private::BreakpointResolver> BreakpointResolverSP;
239    typedef std::tr1::shared_ptr<lldb_private::Broadcaster> BroadcasterSP;
240    typedef std::tr1::shared_ptr<lldb_private::ClangExpressionVariable> ClangExpressionVariableSP;
241    typedef std::tr1::shared_ptr<lldb_private::CommandObject> CommandObjectSP;
242    typedef std::tr1::shared_ptr<lldb_private::Communication> CommunicationSP;
243    typedef std::tr1::shared_ptr<lldb_private::Connection> ConnectionSP;
244    typedef std::tr1::shared_ptr<lldb_private::CompileUnit> CompUnitSP;
245    typedef std::tr1::shared_ptr<lldb_private::DataBuffer> DataBufferSP;
246    typedef std::tr1::shared_ptr<lldb_private::DataExtractor> DataExtractorSP;
247    typedef std::tr1::shared_ptr<lldb_private::Debugger> DebuggerSP;
248    typedef std::tr1::weak_ptr<lldb_private::Debugger> DebuggerWP;
249    typedef std::tr1::shared_ptr<lldb_private::Disassembler> DisassemblerSP;
250    typedef std::tr1::shared_ptr<lldb_private::DynamicLoader> DynamicLoaderSP;
251    typedef std::tr1::shared_ptr<lldb_private::Event> EventSP;
252    typedef std::tr1::shared_ptr<lldb_private::TypeCategoryImpl> TypeCategoryImplSP;
253    typedef std::tr1::shared_ptr<lldb_private::Function> FunctionSP;
254    typedef std::tr1::shared_ptr<lldb_private::InlineFunctionInfo> InlineFunctionInfoSP;
255    typedef std::tr1::shared_ptr<lldb_private::InputReader> InputReaderSP;
256    typedef std::tr1::shared_ptr<lldb_private::InstanceSettings> InstanceSettingsSP;
257    typedef std::tr1::shared_ptr<lldb_private::Instruction> InstructionSP;
258    typedef std::tr1::shared_ptr<lldb_private::LanguageRuntime> LanguageRuntimeSP;
259    typedef std::tr1::shared_ptr<lldb_private::LineTable> LineTableSP;
260    typedef std::tr1::shared_ptr<lldb_private::Listener> ListenerSP;
261    typedef std::tr1::shared_ptr<lldb_private::Log> LogSP;
262    typedef std::tr1::shared_ptr<lldb_private::LogChannel> LogChannelSP;
263    typedef std::tr1::shared_ptr<lldb_private::Module> ModuleSP;
264    typedef std::tr1::weak_ptr<lldb_private::Module> ModuleWP;
265    typedef std::tr1::shared_ptr<lldb_private::ObjectFile> ObjectFileSP;
266    typedef std::tr1::weak_ptr<lldb_private::ObjectFile> ObjectFileWP;
267    typedef std::tr1::shared_ptr<lldb_private::OptionValue> OptionValueSP;
268    typedef std::tr1::shared_ptr<lldb_private::Platform> PlatformSP;
269    typedef std::tr1::shared_ptr<lldb_private::Process> ProcessSP;
270    typedef std::tr1::shared_ptr<lldb_private::ProcessAttachInfo> ProcessAttachInfoSP;
271    typedef std::tr1::shared_ptr<lldb_private::ProcessLaunchInfo> ProcessLaunchInfoSP;
272    typedef std::tr1::weak_ptr<lldb_private::Process> ProcessWP;
273    typedef std::tr1::shared_ptr<lldb_private::RegisterContext> RegisterContextSP;
274    typedef std::tr1::shared_ptr<lldb_private::RegularExpression> RegularExpressionSP;
275    typedef std::tr1::shared_ptr<lldb_private::Section> SectionSP;
276    typedef std::tr1::weak_ptr<lldb_private::Section> SectionWP;
277    typedef std::tr1::shared_ptr<lldb_private::SearchFilter> SearchFilterSP;
278#ifndef LLDB_DISABLE_PYTHON
279    typedef std::tr1::shared_ptr<lldb_private::ScriptSummaryFormat> ScriptSummaryFormatSP;
280#endif // #ifndef LLDB_DISABLE_PYTHON
281    typedef std::tr1::shared_ptr<lldb_private::StackFrame> StackFrameSP;
282    typedef std::tr1::weak_ptr<lldb_private::StackFrame> StackFrameWP;
283    typedef std::tr1::shared_ptr<lldb_private::StackFrameList> StackFrameListSP;
284    typedef std::tr1::shared_ptr<lldb_private::StopInfo> StopInfoSP;
285    typedef std::tr1::shared_ptr<lldb_private::StoppointLocation> StoppointLocationSP;
286    typedef std::tr1::shared_ptr<lldb_private::Stream> StreamSP;
287    typedef std::tr1::shared_ptr<lldb_private::StringSummaryFormat> StringTypeSummaryImplSP;
288    typedef std::tr1::shared_ptr<lldb_private::TypeSummaryImpl> TypeSummaryImplSP;
289    typedef std::tr1::shared_ptr<lldb_private::TypeNameSpecifierImpl> TypeNameSpecifierImplSP;
290    typedef std::tr1::shared_ptr<lldb_private::SymbolFile> SymbolFileSP;
291    typedef std::tr1::shared_ptr<lldb_private::SymbolFileType> SymbolFileTypeSP;
292    typedef std::tr1::weak_ptr<lldb_private::SymbolFileType> SymbolFileTypeWP;
293    typedef std::tr1::shared_ptr<lldb_private::SymbolContextSpecifier> SymbolContextSpecifierSP;
294    typedef std::tr1::shared_ptr<lldb_private::SyntheticChildren> SyntheticChildrenSP;
295    typedef std::tr1::shared_ptr<lldb_private::SyntheticChildrenFrontEnd> SyntheticChildrenFrontEndSP;
296    typedef std::tr1::shared_ptr<lldb_private::TypeFilterImpl> TypeFilterImplSP;
297#ifndef LLDB_DISABLE_PYTHON
298    typedef std::tr1::shared_ptr<lldb_private::TypeSyntheticImpl> TypeSyntheticImplSP;
299#endif
300    typedef std::tr1::shared_ptr<lldb_private::Target> TargetSP;
301    typedef std::tr1::weak_ptr<lldb_private::Target> TargetWP;
302    typedef std::tr1::shared_ptr<lldb_private::Thread> ThreadSP;
303    typedef std::tr1::weak_ptr<lldb_private::Thread> ThreadWP;
304    typedef std::tr1::shared_ptr<lldb_private::ThreadPlan> ThreadPlanSP;
305    typedef std::tr1::shared_ptr<lldb_private::ThreadPlanTracer> ThreadPlanTracerSP;
306    typedef std::tr1::shared_ptr<lldb_private::Type> TypeSP;
307    typedef std::tr1::weak_ptr<lldb_private::Type> TypeWP;
308    typedef std::tr1::shared_ptr<lldb_private::TypeImpl> TypeImplSP;
309    typedef std::tr1::shared_ptr<lldb_private::FuncUnwinders> FuncUnwindersSP;
310    typedef std::tr1::shared_ptr<lldb_private::UserSettingsController> UserSettingsControllerSP;
311    typedef std::tr1::weak_ptr<lldb_private::UserSettingsController> UserSettingsControllerWP;
312    typedef std::tr1::shared_ptr<lldb_private::UnwindPlan> UnwindPlanSP;
313    typedef lldb_private::SharingPtr<lldb_private::ValueObject> ValueObjectSP;
314    typedef std::tr1::shared_ptr<lldb_private::Value> ValueSP;
315    typedef std::tr1::shared_ptr<lldb_private::TypeFormatImpl> TypeFormatImplSP;
316    typedef std::tr1::shared_ptr<lldb_private::ValueList> ValueListSP;
317    typedef std::tr1::shared_ptr<lldb_private::Variable> VariableSP;
318    typedef std::tr1::shared_ptr<lldb_private::VariableList> VariableListSP;
319    typedef std::tr1::shared_ptr<lldb_private::ValueObjectList> ValueObjectListSP;
320    typedef std::tr1::shared_ptr<lldb_private::Watchpoint> WatchpointSP;
321
322} // namespace lldb
323
324
325#endif  // #if defined(__cplusplus)
326#endif  // LLDB_lldb_forward_h_
327