Disable all code related to libXp
[oweals/cde.git] / cde / programs / dtinfo / DtMmdb / StyleSheet / ResolverStack.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 // $XConsortium: ResolverStack.cc /main/3 1996/06/11 17:08:33 cde-hal $
24 #include "ResolverStack.h"
25
26 #include "Element.h"
27 #include "Feature.h"
28
29
30 // we have the responsibility of deleting these guys
31
32 ResolverStackElement::ResolverStackElement(Element      *element,
33                                            FeatureSet   *local,
34                                            FeatureSet   *complete)
35 : f_element(element),
36   f_localFeatureSet(local),
37   f_completeFeatureSet(complete)
38 {
39 }
40   
41
42 ResolverStackElement::~ResolverStackElement()
43 {
44   delete f_element;
45   delete f_localFeatureSet;
46   delete f_completeFeatureSet ;
47 }
48
49 // required by CC_TPtrDlist 
50 int
51 ResolverStackElement::operator==(const ResolverStackElement &stack_element)
52 {
53   return
54     stack_element.f_element             == f_element &&
55     stack_element.f_localFeatureSet     == f_localFeatureSet &&
56     stack_element.f_completeFeatureSet  == f_completeFeatureSet ;
57 }
58
59
60 ResolverStack::ResolverStack()
61 : CC_TPtrDlist<ResolverStackElement>()
62 {
63 }
64
65 ResolverStack::~ResolverStack()
66 {
67   // delete all remaining items in stack 
68   clearAndDestroy();
69 }
70
71 void
72 ResolverStack::push(ResolverStackElement *item)
73 {
74   prepend(item);
75 }
76
77 ResolverStackElement *
78 ResolverStack::top()
79 {
80   return first();
81 }
82
83 ResolverStackElement *
84 ResolverStack::pop()
85 {
86   return removeFirst();
87 }