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
int 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;
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:48
This is the hash or associative list container type in Qore, dynamically allocated only,...
Definition: QoreHashNode.h:50
typed hash declaration
Definition: TypedHashDecl.h:44
long long int64
64bit integer type, cannot use int64_t here since it breaks the API on some 64-bit systems due to equ...
Definition: common.h:260