Disable all code related to libXp
[oweals/cde.git] / cde / programs / dtinfo / DtMmdb / dstr / void_ptr_stack.C
1 /*
2  * CDE - Common Desktop Environment
3  *
4  * Copyright (c) 1993-2012, The Open Group. All rights reserved.
5  *
6  * These libraries and programs are free software; you can
7  * redistribute them and/or modify them under the terms of the GNU
8  * Lesser General Public License as published by the Free Software
9  * Foundation; either version 2 of the License, or (at your option)
10  * any later version.
11  *
12  * These libraries and programs are distributed in the hope that
13  * they will be useful, but WITHOUT ANY WARRANTY; without even the
14  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15  * PURPOSE. See the GNU Lesser General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with these librararies and programs; if not, write
20  * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21  * Floor, Boston, MA 02110-1301 USA
22  */
23 /*
24  * $XConsortium: void_ptr_stack.cc /main/3 1996/06/11 17:18:35 cde-hal $
25  *
26  * Copyright (c) 1993 HAL Computer Systems International, Ltd.
27  * All rights reserved.  Unpublished -- rights reserved under
28  * the Copyright Laws of the United States.  USE OF A COPYRIGHT
29  * NOTICE IS PRECAUTIONARY ONLY AND DOES NOT IMPLY PUBLICATION
30  * OR DISCLOSURE.
31  * 
32  * THIS SOFTWARE CONTAINS CONFIDENTIAL INFORMATION AND TRADE
33  * SECRETS OF HAL COMPUTER SYSTEMS INTERNATIONAL, LTD.  USE,
34  * DISCLOSURE, OR REPRODUCTION IS PROHIBITED WITHOUT THE
35  * PRIOR EXPRESS WRITTEN PERMISSION OF HAL COMPUTER SYSTEMS
36  * INTERNATIONAL, LTD.
37  * 
38  *                         RESTRICTED RIGHTS LEGEND
39  * Use, duplication, or disclosure by the Government is subject
40  * to the restrictions as set forth in subparagraph (c)(l)(ii)
41  * of the Rights in Technical Data and Computer Software clause
42  * at DFARS 252.227-7013.
43  *
44  *          HAL COMPUTER SYSTEMS INTERNATIONAL, LTD.
45  *                  1315 Dell Avenue
46  *                  Campbell, CA  95008
47  * 
48  */
49
50
51 #include  "dstr/void_ptr_stack.h"
52
53 void_ptr_stack::void_ptr_stack(int exp_size) :
54         void_ptr_array(exp_size)
55 {
56 }
57
58 void_ptr_stack::~void_ptr_stack()
59 {
60 }
61
62 void void_ptr_stack::push(void* new_elmt)
63 {
64    insert(new_elmt, v_elmts++);
65 }
66
67 void* void_ptr_stack::pop()
68 {
69    if ( v_elmts == 0 ) 
70        throw(stringException("empty stack"));
71
72    return operator[](--v_elmts);
73 }
74
75 void* void_ptr_stack::peep(int i)
76 {
77    if INRANGE(i, -(v_elmts-1), 0) {
78       return operator[](v_elmts-i-1);
79    } else {
80       debug(cerr, i);
81       debug(cerr, v_elmts);
82       throw(stringException("invalid peep index"));
83    }
84 }
85
86 ostream& operator <<(ostream& out, void_ptr_stack& stk)
87 {
88    for ( int i=stk.no_elmts(); i>0; i-- )
89      debug(cerr, (char*)stk.operator[](i-1));
90    return out;
91 }
92