summaryrefslogtreecommitdiff
path: root/plugins/pychrysalide/core
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2023-07-07 06:32:43 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2023-07-07 06:32:43 (GMT)
commit4c10dfa2a95cea6fc704d68066d0c284cfd79342 (patch)
tree5827bbc411459800747e21929daecdf99fde7dfd /plugins/pychrysalide/core
parent3f996be1e5858b54740bf92515795982a16b169a (diff)
Rewrite core parts of the ROST API.
Diffstat (limited to 'plugins/pychrysalide/core')
-rw-r--r--plugins/pychrysalide/core/global.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/plugins/pychrysalide/core/global.c b/plugins/pychrysalide/core/global.c
index ecaf2c6..9632e75 100644
--- a/plugins/pychrysalide/core/global.c
+++ b/plugins/pychrysalide/core/global.c
@@ -187,6 +187,52 @@ static PyObject *py_global_get_content_resolver(PyObject *self, PyObject *args)
* Paramètres : self = objet Python concerné par l'appel. *
* args = non utilisé ici. *
* *
+* Description : Fournit l'adresse de l'espace de noms principal pour ROST. *
+* *
+* Retour : Espace de noms racine de ROST ou NULL si aucun (!). *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static PyObject *py_global_get_rost_root_namespace(PyObject *self, PyObject *args)
+{
+ PyObject *result; /* Instance Python à retourner */
+ GScanNamespace *root_ns; /* Espace de noms ROST racine */
+
+#define GLOBAL_GET_ROST_ROOT_NAMESPACE_METHOD PYTHON_METHOD_DEF \
+( \
+ get_rost_root_namespace, "", \
+ METH_NOARGS, py_global, \
+ "Get the root namespace for ROST." \
+ "\n" \
+ "The returned object is a pychrysalide.analysis.scan.ScanNamespace" \
+ " instance used as singleton; it should not be *None*." \
+)
+
+ root_ns = get_rost_root_namespace();
+
+ if (root_ns != NULL)
+ {
+ result = pygobject_new(G_OBJECT(root_ns));
+ g_object_unref(G_OBJECT(root_ns));
+ }
+ else
+ {
+ result = Py_None;
+ Py_INCREF(result);
+ }
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : self = objet Python concerné par l'appel. *
+* args = non utilisé ici. *
+* *
* Description : Fournit l'adresse du projet courant. *
* *
* Retour : Adresse du résolveur global ou None si aucun. *
@@ -289,6 +335,7 @@ bool populate_core_module_with_global(void)
GLOBAL_IS_BATCH_MODE_METHOD,
GLOBAL_GET_CONTENT_EXPLORER_METHOD,
GLOBAL_GET_CONTENT_RESOLVER_METHOD,
+ GLOBAL_GET_ROST_ROOT_NAMESPACE_METHOD,
GLOBAL_GET_CURRENT_PROJECT_METHOD,
GLOBAL_SET_CURRENT_PROJECT_METHOD,
{ NULL }