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