SBInstructionList.h revision 314564
136849Sdfr//===-- SBInstructionList.h -------------------------------------*- C++ -*-===//
236972Sdfr//
336849Sdfr//                     The LLVM Compiler Infrastructure
436849Sdfr//
536849Sdfr// This file is distributed under the University of Illinois Open Source
636849Sdfr// License. See LICENSE.TXT for details.
736849Sdfr//
836849Sdfr//===----------------------------------------------------------------------===//
936849Sdfr
1036849Sdfr#ifndef LLDB_SBInstructionList_h_
1136849Sdfr#define LLDB_SBInstructionList_h_
1236849Sdfr
1336849Sdfr#include "lldb/API/SBDefines.h"
1436849Sdfr
1536849Sdfr#include <stdio.h>
1636849Sdfr
1736849Sdfrnamespace lldb {
1836849Sdfr
1936849Sdfrclass LLDB_API SBInstructionList {
2036849Sdfrpublic:
2136849Sdfr  SBInstructionList();
2236849Sdfr
2336849Sdfr  SBInstructionList(const SBInstructionList &rhs);
2436849Sdfr
2536849Sdfr  const SBInstructionList &operator=(const SBInstructionList &rhs);
2650477Speter
2736849Sdfr  ~SBInstructionList();
2836849Sdfr
2936849Sdfr  bool IsValid() const;
3036849Sdfr
3136849Sdfr  size_t GetSize();
3255205Speter
3336849Sdfr  lldb::SBInstruction GetInstructionAtIndex(uint32_t idx);
3444515Sbde
3559093Sdfr  void Clear();
3644515Sbde
3736849Sdfr  void AppendInstruction(lldb::SBInstruction inst);
3836849Sdfr
3936849Sdfr  void Print(FILE *out);
4036972Sdfr
4136972Sdfr  bool GetDescription(lldb::SBStream &description);
4236972Sdfr
4359093Sdfr  bool DumpEmulationForAllInstructions(const char *triple);
4436849Sdfr
4536849Sdfrprotected:
4636849Sdfr  friend class SBFunction;
4741153Swollman  friend class SBSymbol;
4841153Swollman  friend class SBTarget;
4941153Swollman
5041153Swollman  void SetDisassembler(const lldb::DisassemblerSP &opaque_sp);
5141153Swollman
5241153Swollmanprivate:
5341153Swollman  lldb::DisassemblerSP m_opaque_sp;
5446743Sdfr};
5546743Sdfr
5646743Sdfr} // namespace lldb
5746743Sdfr
5846743Sdfr#endif // LLDB_SBInstructionList_h_
5946743Sdfr