SBFileSpecList.h revision 81a96aa6242f7b559770f5dc62316253cb8cb0d4
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===-- SBFileSpecList.h --------------------------------------------*- C++ -*-===//
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//                     The LLVM Compiler Infrastructure
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This file is distributed under the University of Illinois Open Source
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// License. See LICENSE.TXT for details.
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//===----------------------------------------------------------------------===//
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef LLDB_SBFileSpecList_h_
11868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#define LLDB_SBFileSpecList_h_
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "lldb/API/SBDefines.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace lldb {
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SBFileSpecList
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles){
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)public:
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SBFileSpecList ();
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    SBFileSpecList (const lldb::SBFileSpecList &rhs);
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ~SBFileSpecList ();
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const SBFileSpecList &
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    operator = (const lldb::SBFileSpecList &rhs);
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    uint32_t
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    GetSize () const;
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    bool
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    GetDescription (SBStream &description) const;
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    Append (const SBFileSpec &sb_file);
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
38c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch    bool
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    AppendIfUnique (const SBFileSpec &sb_file);
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    void
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    Clear();
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    uint32_t
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    FindFileIndex (uint32_t idx, const SBFileSpec &sb_file, bool full);
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const SBFileSpec
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    GetFileSpecAtIndex (uint32_t idx) const;
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)private:
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
521320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifriend class SBTarget;
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const lldb_private::FileSpecList *
551320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    operator->() const;
561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    const lldb_private::FileSpecList *
581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    get() const;
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const lldb_private::FileSpecList &
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    operator*() const;
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    const lldb_private::FileSpecList &
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    ref() const;
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    STD_UNIQUE_PTR(lldb_private::FileSpecList) m_opaque_ap;
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace lldb
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // LLDB_SBFileSpecList_h_
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)