ooRexx  4.2.0-source
About: ooRexx (Open Object Rexx) is a free implementation of Object Rexx. Object Rexx is an enhancement of the classic Rexx interpreter; a full-featured programming language with a human-oriented syntax.
  Fossies Dox: ooRexx-4.2.0-source.tar.gz  ("inofficial" and yet experimental doxygen-generated source code documentation)  

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 };
Interpreter::getInterpreterVersion
static size_t getInterpreterVersion()
Definition: Version.cpp:92
logical_t
size_t logical_t
Definition: rexx.h:230
InterpreterInstance::traceAllActivities
void traceAllActivities(bool on)
Definition: InterpreterInstance.cpp:565
InstanceApiContext
Definition: ContextApi.hpp:193
RexxThreadContext_
Definition: oorexxapi.h:710
InstanceApiContext::instance
InterpreterInstance * instance
Definition: ContextApi.hpp:217
InterpreterInstance::attachThread
RexxActivity * attachThread()
Definition: InterpreterInstance.cpp:194
INSTANCE_INTERFACE_VERSION
#define INSTANCE_INTERFACE_VERSION
Definition: oorexxapi.h:435
InterpreterInstance::terminate
bool terminate()
Definition: InterpreterInstance.cpp:447
LanguageLevel
size_t RexxEntry LanguageLevel(RexxInstance *)
Definition: InterpreterInstanceStubs.cpp:84
Interpreter.hpp
OREF_NULL
#define OREF_NULL
Definition: RexxCore.h:60
Halt
void RexxEntry Halt(RexxInstance *c)
Definition: InterpreterInstanceStubs.cpp:67
InterpreterInstance::haltAllActivities
bool haltAllActivities(RexxString *)
Definition: InterpreterInstance.cpp:539
AttachThread
logical_t RexxEntry AttachThread(RexxInstance *c, RexxThreadContext **tc)
Definition: InterpreterInstanceStubs.cpp:61
BEGIN_EXTERN_C
#define BEGIN_EXTERN_C()
Definition: rexx.h:60
ContextApi.hpp
InterpreterInstance
Definition: InterpreterInstance.hpp:55
Interpreter::terminateInterpreter
static bool terminateInterpreter()
Definition: Interpreter.cpp:187
Terminate
void RexxEntry Terminate(RexxInstance *c)
Definition: InterpreterInstanceStubs.cpp:52
RexxInstanceInterface
Definition: oorexxapi.h:437
SetTrace
void RexxEntry SetTrace(RexxInstance *c, logical_t setting)
Definition: InterpreterInstanceStubs.cpp:73
Interpreter::getLanguageLevel
static size_t getLanguageLevel()
Definition: Version.cpp:103
InterpreterInstance.hpp
RexxCore.h
RexxInstance_
Definition: oorexxapi.h:677
RexxEntry
#define RexxEntry
Definition: rexx.h:233
InterpreterVersion
size_t RexxEntry InterpreterVersion(RexxInstance *)
Definition: InterpreterInstanceStubs.cpp:79
END_EXTERN_C
#define END_EXTERN_C()
Definition: rexx.h:61