RexxListTable.hpp
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.oorexx.org/license.html */
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 Kernel RexxListTable.hpp */
40
/* */
41
/* Primitive List Table Class Definitions */
42
/* */
43
/******************************************************************************/
44
#ifndef Included_RexxListTable
45
#define Included_RexxListTable
46
47
#include "
ObjectClass.hpp
"
48
49
typedef
struct
listentry
{
50
RexxObject
*
value
;
/* list element value */
51
size_t
next
;
/* next list element in chain */
52
size_t
previous
;
/* previous list element in chain */
53
}
LISTENTRY
;
54
55
class
RexxListTable
:
public
RexxInternalObject
{
56
public
:
57
void
*
operator
new
(size_t, size_t);
58
void
*
operator
new
(size_t, size_t, size_t);
59
inline
void
*
operator
new
(
size_t
size
,
void
*objectPtr) {
return
objectPtr; };
60
inline
void
operator
delete
(
void
*) { ; }
61
inline
void
operator
delete
(
void
*, size_t) { }
62
inline
void
operator
delete
(
void
*, size_t, size_t) { }
63
inline
void
operator
delete
(
void
*,
void
*) { }
64
65
inline
RexxListTable
(
RESTORETYPE
restoreType) { ; };
66
inline
RexxListTable
() {;};
67
68
void
live
(
size_t
);
69
void
liveGeneral
(
int
reason);
70
void
flatten
(
RexxEnvelope
*);
71
inline
LISTENTRY
*
getData
() {
return
this->
elements
; };
72
73
size_t
size
;
/* count of list elements */
74
LISTENTRY
elements
[1];
/* entry elements */
75
};
76
#endif
ObjectClass.hpp
RESTORETYPE
RESTORETYPE
Definition:
ObjectClass.hpp:82
LISTENTRY
struct listentry LISTENTRY
RexxEnvelope
Definition:
RexxEnvelope.hpp:54
RexxInternalObject
Definition:
ObjectClass.hpp:223
RexxListTable
Definition:
RexxListTable.hpp:55
RexxListTable::liveGeneral
void liveGeneral(int reason)
Definition:
RexxListTable.cpp:59
RexxListTable::RexxListTable
RexxListTable(RESTORETYPE restoreType)
Definition:
RexxListTable.hpp:65
RexxListTable::elements
LISTENTRY elements[1]
Definition:
RexxListTable.hpp:74
RexxListTable::getData
LISTENTRY * getData()
Definition:
RexxListTable.hpp:71
RexxListTable::flatten
void flatten(RexxEnvelope *)
Definition:
RexxListTable.cpp:72
RexxListTable::size
size_t size
Definition:
RexxListTable.hpp:71
RexxListTable::live
void live(size_t)
Definition:
RexxListTable.cpp:47
RexxListTable::RexxListTable
RexxListTable()
Definition:
RexxListTable.hpp:66
RexxObject
Definition:
ObjectClass.hpp:335
listentry
Definition:
RexxListTable.hpp:49
listentry::next
size_t next
Definition:
RexxListTable.hpp:51
listentry::previous
size_t previous
Definition:
RexxListTable.hpp:52
listentry::value
RexxObject * value
Definition:
RexxListTable.hpp:50
oorexx
executor
sandbox
jlf
trunk
interpreter
classes
support
RexxListTable.hpp
Generated by
1.9.2