InterpreterInstanceStubs.cpp
Go to the documentation of this file.
1
/*----------------------------------------------------------------------------*/
2
/* */
3
/* Copyright (c) 1995, 2004 IBM Corporation. All rights reserved. */
4
/* Copyright (c) 2005-2009 Rexx Language Association. All rights reserved. */
5
/* */
6
/* This program and the accompanying materials are made available under */
7
/* the terms of the Common Public License v1.0 which accompanies this */
8
/* distribution. A copy is also available at the following address: */
9
/* http://www.ibm.com/developerworks/oss/CPLv1.0.htm */
10
/* */
11
/* Redistribution and use in source and binary forms, with or */
12
/* without modification, are permitted provided that the following */
13
/* conditions are met: */
14
/* */
15
/* Redistributions of source code must retain the above copyright */
16
/* notice, this list of conditions and the following disclaimer. */
17
/* Redistributions in binary form must reproduce the above copyright */
18
/* notice, this list of conditions and the following disclaimer in */
19
/* the documentation and/or other materials provided with the distribution. */
20
/* */
21
/* Neither the name of Rexx Language Association nor the names */
22
/* of its contributors may be used to endorse or promote products */
23
/* derived from this software without specific prior written permission. */
24
/* */
25
/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */
26
/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */
27
/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */
28
/* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */
29
/* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */
30
/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */
31
/* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
32
/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */
33
/* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
34
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */
35
/* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
36
/* */
37
/*----------------------------------------------------------------------------*/
38
/******************************************************************************/
39
/* REXX API support */
40
/* */
41
/* Stub functions for all APIs accessed via the RexxInstance structure */
42
/* */
43
/******************************************************************************/
44
45
#include "
RexxCore.h
"
46
#include "
ContextApi.hpp
"
47
#include "
InterpreterInstance.hpp
"
48
#include "
Interpreter.hpp
"
49
50
BEGIN_EXTERN_C
()
51
52
void
RexxEntry
Terminate
(
RexxInstance
*c)
53
{
54
InstanceApiContext
context(c);
55
context.
instance
->
terminate
();
56
// terminate and clean up the interpreter runtime. This only works
57
// if there are no active instances
58
Interpreter::terminateInterpreter
();
59
}
60
61
logical_t
RexxEntry
AttachThread
(
RexxInstance
*c,
RexxThreadContext
**tc)
62
{
63
InstanceApiContext
context(c);
64
return
(context.
instance
->
attachThread
(*tc) == 0);
65
}
66
67
void
RexxEntry
Halt
(
RexxInstance
*c)
68
{
69
InstanceApiContext
context(c);
70
context.
instance
->
haltAllActivities
(
OREF_NULL
);
71
}
72
73
void
RexxEntry
SetTrace
(
RexxInstance
*c,
logical_t
setting)
74
{
75
InstanceApiContext
context(c);
76
context.
instance
->
traceAllActivities
(setting != 0);
77
}
78
79
size_t
RexxEntry
InterpreterVersion
(
RexxInstance
*)
80
{
81
return
Interpreter::getInterpreterVersion
();
82
}
83
84
size_t
RexxEntry
LanguageLevel
(
RexxInstance
*)
85
{
86
return
Interpreter::getLanguageLevel
();
87
}
88
89
END_EXTERN_C
()
90
91
92
RexxInstanceInterface
InterpreterInstance
::interfaceVector =
93
{
94
INSTANCE_INTERFACE_VERSION
,
95
Terminate
,
96
AttachThread
,
97
InterpreterVersion
,
98
LanguageLevel
,
99
Halt
,
100
SetTrace
,
101
};
ContextApi.hpp
Interpreter.hpp
InterpreterInstance.hpp
AttachThread
logical_t RexxEntry AttachThread(RexxInstance *c, RexxThreadContext **tc)
Definition:
InterpreterInstanceStubs.cpp:61
SetTrace
void RexxEntry SetTrace(RexxInstance *c, logical_t setting)
Definition:
InterpreterInstanceStubs.cpp:73
LanguageLevel
size_t RexxEntry LanguageLevel(RexxInstance *)
Definition:
InterpreterInstanceStubs.cpp:84
Halt
void RexxEntry Halt(RexxInstance *c)
Definition:
InterpreterInstanceStubs.cpp:67
Terminate
void RexxEntry Terminate(RexxInstance *c)
Definition:
InterpreterInstanceStubs.cpp:52
InterpreterVersion
size_t RexxEntry InterpreterVersion(RexxInstance *)
Definition:
InterpreterInstanceStubs.cpp:79
RexxCore.h
OREF_NULL
#define OREF_NULL
Definition:
RexxCore.h:61
InstanceApiContext
Definition:
ContextApi.hpp:194
InstanceApiContext::instance
InterpreterInstance * instance
Definition:
ContextApi.hpp:217
Interpreter::getInterpreterVersion
static size_t getInterpreterVersion()
Definition:
Version.cpp:92
Interpreter::terminateInterpreter
static bool terminateInterpreter()
Definition:
Interpreter.cpp:187
Interpreter::getLanguageLevel
static size_t getLanguageLevel()
Definition:
Version.cpp:103
InterpreterInstance
Definition:
InterpreterInstance.hpp:56
InterpreterInstance::terminate
bool terminate()
Definition:
InterpreterInstance.cpp:448
InterpreterInstance::attachThread
RexxActivity * attachThread()
Definition:
InterpreterInstance.cpp:195
InterpreterInstance::haltAllActivities
bool haltAllActivities(RexxString *)
Definition:
InterpreterInstance.cpp:541
InterpreterInstance::traceAllActivities
void traceAllActivities(bool on)
Definition:
InterpreterInstance.cpp:567
INSTANCE_INTERFACE_VERSION
#define INSTANCE_INTERFACE_VERSION
Definition:
oorexxapi.h:435
END_EXTERN_C
#define END_EXTERN_C()
Definition:
rexx.h:61
logical_t
size_t logical_t
Definition:
rexx.h:231
RexxEntry
#define RexxEntry
Definition:
rexx.h:235
BEGIN_EXTERN_C
#define BEGIN_EXTERN_C()
Definition:
rexx.h:60
RexxInstance_
Definition:
oorexxapi.h:682
RexxInstanceInterface
Definition:
oorexxapi.h:438
RexxThreadContext_
Definition:
oorexxapi.h:715
oorexx
executor
sandbox
jlf
trunk
interpreter
api
InterpreterInstanceStubs.cpp
Generated by
1.9.2