SBStringList.h revision 5f81547fd786584b10999c087528b323b5945896
1//===-- SBStringList.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_SBStringList_h_
11#define LLDB_SBStringList_h_
12
13#include "lldb/API/SBDefines.h"
14
15namespace lldb {
16
17class SBStringList
18{
19public:
20
21    SBStringList ();
22
23    SBStringList (const lldb_private::StringList  *lldb_strings);
24
25    SBStringList (const lldb::SBStringList  &rhs);
26
27    ~SBStringList ();
28
29    bool
30    IsValid() const;
31
32    void
33    AppendString (const char *str);
34
35    void
36    AppendList (const char **strv, int strc);
37
38    void
39    AppendList (lldb::SBStringList strings);
40
41    uint32_t
42    GetSize () const;
43
44    const char *
45    GetStringAtIndex (size_t idx);
46
47    void
48    Clear ();
49
50#ifndef SWIG
51
52    const lldb_private::StringList *
53    operator->() const;
54
55    const lldb_private::StringList &
56    operator*() const;
57
58    const lldb::SBStringList &
59    operator = (const lldb::SBStringList &rhs);
60
61#endif
62
63private:
64
65    std::auto_ptr<lldb_private::StringList> m_lldb_object_ap;
66
67};
68
69} // namespace lldb
70
71#endif // LLDB_SBStringList_h_
72