32 #ifndef _QORE_TYPEDHASHDECL_H
34 #define _QORE_TYPEDHASHDECL_H
37 class typed_hash_decl_private;
45 friend class typed_hash_decl_private;
53 DLLEXPORT
const QoreTypeInfo*
getTypeInfo(
bool or_nothing =
false)
const;
56 DLLEXPORT
void addMember(
const char* name,
const QoreTypeInfo* memberTypeInfo,
QoreValue init_val);
117 typed_hash_decl_private* priv;
164 DLLEXPORT
bool next();
168 DLLEXPORT
const char* getName()
const;
171 class typed_hash_decl_member_iterator* priv;
181 DLLEXPORT
extern const TypedHashDecl* hashdeclFilesystemInfo;
202 DLLEXPORT
extern const TypedHashDecl* hashdeclSourceLocationInfo;
207 DLLEXPORT
extern const TypedHashDecl* hashdeclSerializationInfo;
212 DLLEXPORT
extern const TypedHashDecl* hashdeclObjectSerializationInfo;
217 DLLEXPORT
extern const TypedHashDecl* hashdeclIndexedObjectSerializationInfo;
222 DLLEXPORT
extern const TypedHashDecl* hashdeclHashSerializationInfo;
227 DLLEXPORT
extern const TypedHashDecl* hashdeclListSerializationInfo;
237 DLLEXPORT
extern const TypedHashDecl* hashdeclFtpResponseInfo;
242 DLLEXPORT
extern const TypedHashDecl* hashdeclSocketPollInfo;
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:48
external wrapper base class for class and hashdecl members
Definition: QoreReflection.h:118
external wrapper class for source code location information
Definition: QoreReflection.h:187
This is the hash or associative list container type in Qore, dynamically allocated only,...
Definition: QoreHashNode.h:50
contains constants, classes, and subnamespaces in QoreProgram objects
Definition: QoreNamespace.h:65
allows for temporary storage of a TypedHashDecl pointer
Definition: TypedHashDecl.h:123
DLLLOCAL TypedHashDecl * operator->() const
implicit conversion to TypedHashDecl*
Definition: TypedHashDecl.h:138
DLLEXPORT ~TypedHashDeclHolder()
deletes the TypedHashDecl object if still managed
DLLLOCAL TypedHashDecl * release()
releases the TypedHashDecl*
Definition: TypedHashDecl.h:146
DLLLOCAL TypedHashDecl * operator*() const
implicit conversion to TypedHashDecl*
Definition: TypedHashDecl.h:133
DLLLOCAL TypedHashDeclHolder(TypedHashDecl *thd)
creates the object
Definition: TypedHashDecl.h:126
DLLLOCAL TypedHashDecl * operator=(TypedHashDecl *nhd)
assign new TypedHashDecl value; any managed object is deleted if still managed
typed hash declaration
Definition: TypedHashDecl.h:44
DLLEXPORT const char * getName() const
returns the name of the typed hash
DLLEXPORT const char * getModuleName() const
Returns the module name the class was loaded from or nullptr if it is a builtin class.
DLLEXPORT const QoreExternalProgramLocation * getSourceLocation() const
returns the source location of the typed hash (hashdecl) definition
DLLEXPORT bool equal(const TypedHashDecl *other) const
returns true if the hashdecl passed as an arugment is equal to this hashdecl
DLLEXPORT std::string getNamespacePath(bool anchored=false) const
returns the full namespace path of the class
DLLEXPORT const QoreTypeInfo * getTypeInfo(bool or_nothing=false) const
returns the type info object for the hashdecl
DLLEXPORT const QoreExternalMemberBase * findLocalMember(const char *name) const
Finds the given local member or returns nullptr.
DLLEXPORT ~TypedHashDecl()
deletes the object and frees all memory
DLLEXPORT QoreHashNode * doRuntimeCast(const QoreHashNode *h, ExceptionSink *xsink) const
Performs a runtime cast and returns a typed hash if the has passed is compatible.
DLLEXPORT bool isPublic() const
returns true if the typed hash has the public (export) flag set
DLLEXPORT const QoreNamespace * getNamespace() const
Returns the namespace owning the typed hash declaration.
DLLEXPORT void addMember(const char *name, const QoreTypeInfo *memberTypeInfo, QoreValue init_val)
adds an element to a built-in hashdecl
DLLEXPORT bool isSystem() const
returns true if the typed hash is a builtin typed hash
Allows iteration of a hashdecl's members.
Definition: TypedHashDecl.h:158
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:275