lldb-forward.h revision b4d7fc0c466d446876e5f2d701f0e574dd0be8e7
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::weak_ptr<lldb_private::Process> ProcessWP; 271 typedef std::tr1::shared_ptr<lldb_private::RegisterContext> RegisterContextSP; 272 typedef std::tr1::shared_ptr<lldb_private::RegularExpression> RegularExpressionSP; 273 typedef std::tr1::shared_ptr<lldb_private::Section> SectionSP; 274 typedef std::tr1::shared_ptr<lldb_private::SearchFilter> SearchFilterSP; 275#ifndef LLDB_DISABLE_PYTHON 276 typedef std::tr1::shared_ptr<lldb_private::ScriptSummaryFormat> ScriptSummaryFormatSP; 277#endif // #ifndef LLDB_DISABLE_PYTHON 278 typedef std::tr1::shared_ptr<lldb_private::StackFrame> StackFrameSP; 279 typedef std::tr1::weak_ptr<lldb_private::StackFrame> StackFrameWP; 280 typedef std::tr1::shared_ptr<lldb_private::StackFrameList> StackFrameListSP; 281 typedef std::tr1::shared_ptr<lldb_private::StopInfo> StopInfoSP; 282 typedef std::tr1::shared_ptr<lldb_private::StoppointLocation> StoppointLocationSP; 283 typedef std::tr1::shared_ptr<lldb_private::Stream> StreamSP; 284 typedef std::tr1::shared_ptr<lldb_private::StringSummaryFormat> StringTypeSummaryImplSP; 285 typedef std::tr1::shared_ptr<lldb_private::TypeSummaryImpl> TypeSummaryImplSP; 286 typedef std::tr1::shared_ptr<lldb_private::TypeNameSpecifierImpl> TypeNameSpecifierImplSP; 287 typedef std::tr1::shared_ptr<lldb_private::SymbolFile> SymbolFileSP; 288 typedef std::tr1::shared_ptr<lldb_private::SymbolFileType> SymbolFileTypeSP; 289 typedef std::tr1::weak_ptr<lldb_private::SymbolFileType> SymbolFileTypeWP; 290 typedef std::tr1::shared_ptr<lldb_private::SymbolContextSpecifier> SymbolContextSpecifierSP; 291 typedef std::tr1::shared_ptr<lldb_private::SyntheticChildren> SyntheticChildrenSP; 292 typedef std::tr1::shared_ptr<lldb_private::SyntheticChildrenFrontEnd> SyntheticChildrenFrontEndSP; 293 typedef std::tr1::shared_ptr<lldb_private::TypeFilterImpl> TypeFilterImplSP; 294 typedef std::tr1::shared_ptr<lldb_private::TypeSyntheticImpl> TypeSyntheticImplSP; 295 typedef std::tr1::shared_ptr<lldb_private::Target> TargetSP; 296 typedef std::tr1::weak_ptr<lldb_private::Target> TargetWP; 297 typedef std::tr1::shared_ptr<lldb_private::Thread> ThreadSP; 298 typedef std::tr1::weak_ptr<lldb_private::Thread> ThreadWP; 299 typedef std::tr1::shared_ptr<lldb_private::ThreadPlan> ThreadPlanSP; 300 typedef std::tr1::shared_ptr<lldb_private::ThreadPlanTracer> ThreadPlanTracerSP; 301 typedef std::tr1::shared_ptr<lldb_private::Type> TypeSP; 302 typedef std::tr1::weak_ptr<lldb_private::Type> TypeWP; 303 typedef std::tr1::shared_ptr<lldb_private::TypeImpl> TypeImplSP; 304 typedef std::tr1::shared_ptr<lldb_private::FuncUnwinders> FuncUnwindersSP; 305 typedef std::tr1::shared_ptr<lldb_private::UserSettingsController> UserSettingsControllerSP; 306 typedef std::tr1::weak_ptr<lldb_private::UserSettingsController> UserSettingsControllerWP; 307 typedef std::tr1::shared_ptr<lldb_private::UnwindPlan> UnwindPlanSP; 308 typedef lldb_private::SharingPtr<lldb_private::ValueObject> ValueObjectSP; 309 typedef std::tr1::shared_ptr<lldb_private::Value> ValueSP; 310 typedef std::tr1::shared_ptr<lldb_private::TypeFormatImpl> TypeFormatImplSP; 311 typedef std::tr1::shared_ptr<lldb_private::ValueList> ValueListSP; 312 typedef std::tr1::shared_ptr<lldb_private::Variable> VariableSP; 313 typedef std::tr1::shared_ptr<lldb_private::VariableList> VariableListSP; 314 typedef std::tr1::shared_ptr<lldb_private::ValueObjectList> ValueObjectListSP; 315 typedef std::tr1::shared_ptr<lldb_private::Watchpoint> WatchpointSP; 316 317} // namespace lldb 318 319 320#endif // #if defined(__cplusplus) 321#endif // LLDB_lldb_forward_h_ 322