24 #ifndef _QORE_QORECLASS_H
26 #define _QORE_QORECLASS_H
56 DLLEXPORT
extern QoreClass *QC_HTTPCLIENT;
67 class AbstractQoreFunctionVariant;
68 class AbstractFunctionSignature;
71 class qore_method_private;
72 class MethodFunctionBase;
73 class QoreExternalMethodVariant;
74 class QoreExternalStaticMethodVariant;
77 class MethodVariantBase;
84 friend class StaticMethodCallNode;
86 friend class qore_class_private;
87 friend class qore_method_private;
92 class qore_method_private *priv;
98 DLLLOCAL QoreMethod& operator=(
const QoreMethod&);
116 DLLEXPORT
bool isUser()
const;
138 DLLEXPORT
const char *
getName()
const;
153 DLLEXPORT
const QoreTypeInfo *getUniqueReturnTypeInfo()
const;
155 DLLLOCAL QoreMethod(
const QoreClass *p_class, MethodFunctionBase *n_func,
bool n_static =
false);
157 DLLLOCAL ~QoreMethod();
158 DLLLOCAL
bool inMethod(
const QoreObject *
self)
const;
159 DLLLOCAL QoreMethod *copy(
const QoreClass *p_class)
const;
160 DLLLOCAL
void assign_class(
const QoreClass *p_class);
161 DLLLOCAL MethodFunctionBase *getFunction()
const;
196 friend class BCSMList;
197 friend class qore_object_private;
198 friend class qore_class_private;
200 friend class BCANode;
201 friend class qore_method_private;
204 friend class ConstructorMethodFunction;
211 class qore_class_private *priv;
217 DLLLOCAL
void insertStaticMethod(
QoreMethod *o);
219 DLLLOCAL
const QoreMethod *parseResolveSelfMethodIntern(
const char *nme);
246 DLLEXPORT
const QoreClass *getClassIntern(
qore_classid_t cid,
bool &priv)
const;
265 DLLEXPORT
QoreClass(
const char *n_name, int64 n_domain,
const QoreTypeInfo *n_typeInfo);
270 DLLEXPORT
QoreClass(
const QoreClass &old);
634 DLLEXPORT
const QoreClass *
getClass(
const QoreClass& qc,
bool &priv)
const;
649 DLLEXPORT
bool hasCopy()
const;
677 DLLEXPORT
const char *
getName()
const;
816 DLLLOCAL
const QoreMethod *parseFindCommittedMethod(
const char *nme);
819 DLLLOCAL
void parseAssimilatePublicConstants(ConstantList &cmap);
821 DLLLOCAL
void parseAssimilatePrivateConstants(ConstantList &cmap);
823 DLLLOCAL
void parseAddPublicConstant(
const std::string &name,
AbstractQoreNode *val);
826 DLLLOCAL
int parseAddBaseClassArgumentList(BCAList *bcal);
828 DLLLOCAL
void setName(
const char *n);
832 DLLLOCAL BCSMList *getBCSMList()
const;
834 DLLLOCAL
bool has_delete_blocker()
const;
836 DLLLOCAL
const QoreMethod *parseFindLocalMethod(
const char *name)
const;
838 DLLLOCAL
const QoreMethod *parseFindMethodTree(
const char *name);
840 DLLLOCAL
const QoreMethod *parseFindStaticMethodTree(
const char *name);
842 DLLLOCAL
bool parseCheckHierarchy(
const QoreClass *cls)
const;
844 DLLLOCAL
int parseCheckMemberAccess(
const char *mem,
const QoreTypeInfo *&memberTypeInfo,
int pflag)
const;
845 DLLLOCAL
bool parseHasPublicMembersInHierarchy()
const;
846 DLLLOCAL
bool runtimeGetMemberInfo(
const char *mem,
const QoreTypeInfo *&memberTypeInfo,
bool &priv)
const;
847 DLLLOCAL
bool runtimeHasPublicMembersInHierarchy()
const;
850 DLLLOCAL
bool hasParentClass()
const;
852 DLLLOCAL
bool hasPrivateCopyMethod()
const;
854 DLLLOCAL
bool parseHasPrivateCopyMethod()
const;
855 DLLLOCAL
const QoreMethod *parseGetConstructor()
const;
857 DLLLOCAL
bool parseHasMethodGate()
const;
859 DLLLOCAL
void parseSetEmptyPublicMemberDeclaration();
861 DLLLOCAL
void unsetPublicMemberFlag();
871 DLLEXPORT ~QoreMethodIterator();
872 DLLEXPORT
bool next();
873 DLLEXPORT
const QoreMethod* getMethod()
const;
883 DLLEXPORT ~QoreStaticMethodIterator();
884 DLLEXPORT
bool next();
885 DLLEXPORT
const QoreMethod *getMethod()
const;
888 #endif // _QORE_QORECLASS_H