5#include <unordered_map>
34#define STRINGIFY_NS(ns) #ns
35#define PAPPSO_REGISTER_JS_CLASS(NS_IDENT, CLASS_NAME) \
36 struct JsRegHelper_##CLASS_NAME \
38 JsRegHelper_##CLASS_NAME() \
40 pappso::getNameSpaceClassNameJsConstructorRegistrarMap().insert( \
41 {{QStringLiteral(STRINGIFY_NS(NS_IDENT)), QStringLiteral(#CLASS_NAME)}, \
42 [](QJSEngine *engine) { NS_IDENT::CLASS_NAME::registerJsConstructor(engine); }}); \
45 static JsRegHelper_##CLASS_NAME jsRegHelperInstance_##CLASS_NAME;
59 return qHash(key.first) ^ (qHash(key.second) << 1);
70 return a.first ==
b.first &&
a.second ==
b.second;
76 NamespaceClassnameAsKeyHash,
77 AreNamespaceClassnamePairsEqual> &
81 const QString &name_space,
const QString &class_name, QJSEngine *engine);
tries to keep as much as possible monoisotopes, removing any possible C13 peaks and changes multichar...
void registerJsConstructorForNameSpaceClassNameInRegistrarMap(const QString &name_space, const QString &class_name, QJSEngine *engine)
std::function< void(QJSEngine *)> RegisterFunc
void registerJsConstructorForEachClassInRegistrarMap(QJSEngine *engine)
std::unordered_map< NamespaceClassnamePairAsKey, RegisterFunc, NamespaceClassnameAsKeyHash, AreNamespaceClassnamePairsEqual > & getNameSpaceClassNameJsConstructorRegistrarMap()
std::pair< QString, QString > NamespaceClassnamePairAsKey
bool operator()(const NamespaceClassnamePairAsKey &a, const NamespaceClassnamePairAsKey &b) const noexcept
std::size_t operator()(const NamespaceClassnamePairAsKey &key) const noexcept