xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/varobj-iter.h (revision 32d1c65c71fbdb65a012e8392a62a757dd6853e9)
1 /* Iterator of varobj.
2    Copyright (C) 2013-2023 Free Software Foundation, Inc.
3 
4    This program is free software; you can redistribute it and/or modify
5    it under the terms of the GNU General Public License as published by
6    the Free Software Foundation; either version 3 of the License, or
7    (at your option) any later version.
8 
9    This program is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12    GNU General Public License for more details.
13 
14    You should have received a copy of the GNU General Public License
15    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
16 
17 #ifndef VAROBJ_ITER_H
18 #define VAROBJ_ITER_H
19 
20 /* A node or item of varobj, composed of the name and the value.  */
21 
22 struct varobj_item
23 {
24   /* Name of this item.  */
25   std::string name;
26 
27   /* Value of this item.  */
28   value_ref_ptr value;
29 };
30 
31 /* A dynamic varobj iterator "class".  */
32 
33 struct varobj_iter
34 {
35 public:
36 
37   virtual ~varobj_iter () = default;
38 
39   virtual std::unique_ptr<varobj_item> next () = 0;
40 };
41 
42 #endif /* VAROBJ_ITER_H */
43