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