103c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham//===-- SBFileSpecList.h --------------------------------------------*- C++ -*-===// 203c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham// 303c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham// The LLVM Compiler Infrastructure 403c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham// 503c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham// This file is distributed under the University of Illinois Open Source 603c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham// License. See LICENSE.TXT for details. 703c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham// 803c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham//===----------------------------------------------------------------------===// 903c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 1003c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham#ifndef LLDB_SBFileSpecList_h_ 1103c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham#define LLDB_SBFileSpecList_h_ 1203c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 1303c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham#include "lldb/API/SBDefines.h" 1403c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 1503c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Inghamnamespace lldb { 1603c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 1703c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Inghamclass SBFileSpecList 1803c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham{ 1903c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Inghampublic: 2003c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham SBFileSpecList (); 2103c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 2203c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham SBFileSpecList (const lldb::SBFileSpecList &rhs); 2303c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 2403c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham ~SBFileSpecList (); 2503c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 2603c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham const SBFileSpecList & 2703c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham operator = (const lldb::SBFileSpecList &rhs); 2803c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 2903c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham uint32_t 3003c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham GetSize () const; 3103c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 3203c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham bool 3303c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham GetDescription (SBStream &description) const; 3403c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 3503c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham void 3603c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham Append (const SBFileSpec &sb_file); 3703c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 3803c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham bool 3903c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham AppendIfUnique (const SBFileSpec &sb_file); 4003c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 4103c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham void 4203c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham Clear(); 4303c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 4403c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham uint32_t 45d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham FindFileIndex (uint32_t idx, const SBFileSpec &sb_file, bool full); 4603c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 4703c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham const SBFileSpec 4803c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham GetFileSpecAtIndex (uint32_t idx) const; 4903c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 5003c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Inghamprivate: 5103c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 52d6d47976b71187907c1cdeea86fabf7d5534314fJim Inghamfriend class SBTarget; 53d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham 5403c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham const lldb_private::FileSpecList * 5503c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham operator->() const; 5603c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 5703c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham const lldb_private::FileSpecList * 5803c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham get() const; 5903c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 6003c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham const lldb_private::FileSpecList & 6103c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham operator*() const; 6203c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 6303c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham const lldb_private::FileSpecList & 6403c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham ref() const; 6503c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 66102b2c2681c9a830afe25bfea35557421905e42cGreg Clayton std::unique_ptr<lldb_private::FileSpecList> m_opaque_ap; 6703c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham}; 6803c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 6903c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 7003c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham} // namespace lldb 7103c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 7203c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham#endif // LLDB_SBFileSpecList_h_ 73