32 #ifndef _QORE_INTERN_HASHDECLLIST_H
34 #define _QORE_INTERN_HASHDECLLIST_H
40 #include <qore/vector_map>
41 typedef vector_map_t<const char*, TypedHashDecl*> hm_qth_t;
54 class QoreNamespaceList;
56 class HashDeclListIterator;
57 class ConstHashDeclListIterator;
60 friend class HashDeclListIterator;
61 friend class ConstHashDeclListIterator;
66 DLLLOCAL
void deleteAll();
68 DLLLOCAL
void remove(hm_qth_t::iterator i);
73 DLLLOCAL HashDeclList() {}
74 DLLLOCAL ~HashDeclList();
75 DLLLOCAL HashDeclList(
const HashDeclList& old,
int64 po, qore_ns_private* ns);
77 DLLLOCAL
void mergeUserPublic(
const HashDeclList& old, qore_ns_private* ns);
80 DLLLOCAL
int importSystemHashDecls(
const HashDeclList& source, qore_ns_private* ns,
ExceptionSink* xsink);
87 DLLLOCAL
void parseInit();
89 DLLLOCAL
void reset();
91 DLLLOCAL
void assimilate(HashDeclList& n, qore_ns_private& ns);
94 DLLLOCAL
bool empty()
const {
99 class HashDeclListIterator {
102 hm_qth_t::iterator i;
105 DLLLOCAL HashDeclListIterator(HashDeclList& n_hd) : hd(n_hd.hm), i(hd.end()) {
108 DLLLOCAL
bool next() {
113 return i != hd.end();
116 DLLLOCAL
const char* getName()
const {
124 DLLLOCAL
bool isPublic()
const;
126 DLLLOCAL
bool isUserPublic()
const;
129 class ConstHashDeclListIterator {
132 hm_qth_t::const_iterator i;
135 DLLLOCAL ConstHashDeclListIterator(
const HashDeclList& n_hd) : hd(n_hd.hm), i(hd.end()) {
138 DLLLOCAL
bool next() {
143 return i != hd.end();
146 DLLLOCAL
const char* getName()
const {
154 DLLLOCAL
bool isPublic()
const;
156 DLLLOCAL
bool isUserPublic()
const;