1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
/*
* SPDX-License-Identifier: MIT OR LGPL-2.0-or-later
* SPDX-FileCopyrightText: 2008 litl, LLC
*/
#ifndef GJS_CONTEXT_H_
#define GJS_CONTEXT_H_
#if !defined(INSIDE_GJS_H) && !defined(GJS_COMPILATION)
# error "Only <gjs/gjs.h> can be included directly."
#endif
#include <stdbool.h> /* IWYU pragma: keep */
#include <stdint.h>
#include <sys/types.h> /* for ssize_t */
#ifndef _WIN32
# include <signal.h> /* for siginfo_t */
#endif
#include <glib-object.h>
#include <glib.h>
#include <gjs/macros.h>
#include <gjs/profiler.h>
G_BEGIN_DECLS
typedef struct _GjsContext GjsContext;
typedef struct _GjsContextClass GjsContextClass;
#define GJS_TYPE_CONTEXT (gjs_context_get_type ())
#define GJS_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GJS_TYPE_CONTEXT, GjsContext))
#define GJS_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GJS_TYPE_CONTEXT, GjsContextClass))
#define GJS_IS_CONTEXT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GJS_TYPE_CONTEXT))
#define GJS_IS_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GJS_TYPE_CONTEXT))
#define GJS_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GJS_TYPE_CONTEXT, GjsContextClass))
GJS_EXPORT GJS_USE GType gjs_context_get_type(void) G_GNUC_CONST;
GJS_EXPORT GJS_USE GjsContext* gjs_context_new(void);
GJS_EXPORT GJS_USE GjsContext* gjs_context_new_with_search_path(
char** search_path);
GJS_EXPORT GJS_USE bool gjs_context_eval_file(GjsContext* js_context,
const char* filename,
int* exit_status_p,
GError** error);
GJS_EXPORT GJS_USE bool gjs_context_eval_module_file(GjsContext* js_context,
const char* filename,
uint8_t* exit_status_p,
GError** error);
GJS_EXPORT GJS_USE bool gjs_context_eval(GjsContext* js_context,
const char* script, gssize script_len,
const char* filename,
int* exit_status_p, GError** error);
GJS_EXPORT GJS_USE bool gjs_context_register_module(GjsContext* context,
const char* identifier,
const char* uri,
GError** error);
GJS_EXPORT GJS_USE bool gjs_context_eval_module(GjsContext* context,
const char* identifier,
uint8_t* exit_code,
GError** error);
GJS_EXPORT GJS_USE bool gjs_context_define_string_array(
GjsContext* js_context, const char* array_name, gssize array_length,
const char** array_values, GError** error);
GJS_EXPORT void gjs_context_set_argv(GjsContext* js_context,
ssize_t array_length,
const char** array_values);
GJS_EXPORT GJS_USE GList* gjs_context_get_all(void);
GJS_EXPORT GJS_USE GjsContext* gjs_context_get_current(void);
GJS_EXPORT
void gjs_context_make_current (GjsContext *js_context);
GJS_EXPORT
void* gjs_context_get_native_context (GjsContext *js_context);
GJS_EXPORT
void gjs_context_print_stack_stderr (GjsContext *js_context);
GJS_EXPORT
void gjs_context_maybe_gc (GjsContext *context);
GJS_EXPORT
void gjs_context_gc (GjsContext *context);
GJS_EXPORT GJS_USE GjsProfiler* gjs_context_get_profiler(GjsContext* self);
GJS_EXPORT GJS_USE bool gjs_profiler_chain_signal(GjsContext* context,
siginfo_t* info);
GJS_EXPORT
void gjs_dumpstack (void);
GJS_EXPORT GJS_USE const char* gjs_get_js_version(void);
GJS_EXPORT
void gjs_context_setup_debugger_console(GjsContext* gjs);
G_END_DECLS
#endif /* GJS_CONTEXT_H_ */
|