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 
51 
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
59 }
60 
62 {
63  InstanceApiContext context(c);
64  return (context.instance->attachThread(*tc) == 0);
65 }
66 
68 {
69  InstanceApiContext context(c);
71 }
72 
74 {
75  InstanceApiContext context(c);
76  context.instance->traceAllActivities(setting != 0);
77 }
78 
80 {
82 }
83 
85 {
87 }
88 
90 
91 
93 {
95  Terminate,
99  Halt,
100  SetTrace,
101 };
logical_t RexxEntry AttachThread(RexxInstance *c, RexxThreadContext **tc)
void RexxEntry SetTrace(RexxInstance *c, logical_t setting)
size_t RexxEntry LanguageLevel(RexxInstance *)
void RexxEntry Halt(RexxInstance *c)
void RexxEntry Terminate(RexxInstance *c)
size_t RexxEntry InterpreterVersion(RexxInstance *)
#define OREF_NULL
Definition: RexxCore.h:60
InterpreterInstance * instance
Definition: ContextApi.hpp:217
static size_t getInterpreterVersion()
Definition: Version.cpp:92
static bool terminateInterpreter()
static size_t getLanguageLevel()
Definition: Version.cpp:103
RexxActivity * attachThread()
bool haltAllActivities(RexxString *)
void traceAllActivities(bool on)
#define INSTANCE_INTERFACE_VERSION
Definition: oorexxapi.h:435
#define END_EXTERN_C()
Definition: rexx.h:61
size_t logical_t
Definition: rexx.h:231
#define RexxEntry
Definition: rexx.h:412
#define BEGIN_EXTERN_C()
Definition: rexx.h:60