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