1//===-- SWIG Interface for SBStringList -------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9namespace lldb {
10
11class SBStringList
12{
13public:
14
15    SBStringList ();
16
17    SBStringList (const lldb::SBStringList &rhs);
18
19    ~SBStringList ();
20
21    bool
22    IsValid() const;
23
24    explicit operator bool() const;
25
26    void
27    AppendString (const char *str);
28
29    void
30    AppendList (const char **strv, int strc);
31
32    void
33    AppendList (const lldb::SBStringList &strings);
34
35    uint32_t
36    GetSize () const;
37
38    const char *
39    GetStringAtIndex (size_t idx);
40
41    void
42    Clear ();
43
44#ifdef SWIGPYTHON
45    %pythoncode%{
46    def __iter__(self):
47        '''Iterate over all strings in a lldb.SBStringList object.'''
48        return lldb_iter(self, 'GetSize', 'GetStringAtIndex')
49
50    def __len__(self):
51        '''Return the number of strings in a lldb.SBStringList object.'''
52        return self.GetSize()
53    %}
54#endif
55};
56
57} // namespace lldb
58