41
41
#include "context/features.h"
43
43
#include "zorbautils/hashmap_zstring.h"
44
#include "zorbautils/hashmap_itemp.h"
45
46
#include "common/shared_types.h"
46
47
#include "util/stl_util.h"
383
384
class static_context : public SimpleRCObject
385
typedef serializable_ItemPointerHashMap<StaticallyKnownCollection_t> CollectionMap;
387
typedef serializable_ItemPointerHashMap<IndexDecl_t> IndexMap;
389
typedef serializable_ItemPointerHashMap<ValueIC_t> ICMap;
391
typedef serializable_ItemPointerHashMap<var_expr_t> VariableMap;
393
typedef serializable_ItemPointerHashMap<FunctionInfo> FunctionMap;
395
typedef serializable_ItemPointerHashMap<std::vector<FunctionInfo>* > FunctionArityMap;
397
typedef serializable_ItemPointerHashMap<PrologOption> OptionMap;
399
typedef serializable_HashMapZString<zstring> NamespaceBindings;
401
typedef serializable_HashMapZString<xqtref_t> DocumentMap;
403
typedef serializable_HashMapZString<xqtref_t> W3CCollectionMap;
386
ITEM_PTR_HASH_MAP(StaticallyKnownCollection_t, CollectionMap);
388
ITEM_PTR_HASH_MAP(IndexDecl_t, IndexMap);
390
ITEM_PTR_HASH_MAP(ValueIC_t, ICMap);
392
ITEM_PTR_HASH_MAP(var_expr_t, VariableMap);
394
ITEM_PTR_HASH_MAP(FunctionInfo, FunctionMap);
396
ITEM_PTR_HASH_MAP(std::vector<FunctionInfo>*, FunctionArityMap);
398
ITEM_PTR_HASH_MAP(PrologOption, OptionMap);
400
ZSTRING_HASH_MAP(zstring, NamespaceBindings);
402
ZSTRING_HASH_MAP(xqtref_t, DocumentMap);
404
ZSTRING_HASH_MAP(xqtref_t, W3CCollectionMap);
405
406
typedef std::map<std::string, XQPCollator*> CollationMap;
422
423
virtual ~ctx_module_t() {}
425
typedef serializable_HashMapZString<ctx_module_t> ExternalModuleMap;
426
ZSTRING_HASH_MAP(ctx_module_t, ExternalModuleMap);
428
429
static const zstring DOT_VAR_NAME;
448
449
// Namespaces of external modules declaring zorba builtin functions
449
450
static const char* ZORBA_MATH_FN_NS;
450
451
static const char* ZORBA_BASE64_FN_NS;
451
453
static const char* ZORBA_JSON_FN_NS;
452
455
static const char* ZORBA_NODEREF_FN_NS;
453
456
static const char* ZORBA_NODEPOS_FN_NS;
454
457
static const char* ZORBA_STORE_DYNAMIC_COLLECTIONS_DDL_FN_NS;
461
464
static const char* ZORBA_STORE_STATIC_INTEGRITY_CONSTRAINTS_DML_FN_NS;
462
465
static const char* ZORBA_STORE_DYNAMIC_DOCUMENTS_FN_NS;
463
466
static const char* ZORBA_STORE_DYNAMIC_UNORDERED_MAP_FN_NS;
468
#ifdef ZORBA_WITH_JSON
469
static const char* JSONIQ_NS;
470
static const char* JSONIQ_FN_NS;
464
473
static const char* ZORBA_SCHEMA_FN_NS;
465
474
static const char* ZORBA_XQDOC_FN_NS;
466
475
static const char* ZORBA_RANDOM_FN_NS;
467
476
static const char* ZORBA_INTROSP_SCTX_FN_NS;
468
477
static const char* ZORBA_REFLECTION_FN_NS;
469
478
static const char* ZORBA_STRING_FN_NS;
470
480
static const char* ZORBA_URI_FN_NS;
471
482
static const char* ZORBA_FETCH_FN_NS;
472
483
static const char* ZORBA_NODE_FN_NS;
473
484
static const char* ZORBA_XML_FN_NS;
827
838
void unbind_fn(const store::Item* qname, ulong arity);
829
function* lookup_fn(const store::Item* qname, ulong arity);
841
const store::Item* qname,
843
bool skipDisabled = true);
831
function* lookup_local_fn(const store::Item* qname, ulong arity);
845
function* lookup_local_fn(
846
const store::Item* qname,
848
bool skipDisabled = true);
833
850
void get_functions(std::vector<function*>& functions) const;