OFFIS DCMTK  Version 3.6.0
dcstack.h
1 /*
2  *
3  * Copyright (C) 1994-2010, OFFIS e.V.
4  * All rights reserved. See COPYRIGHT file for details.
5  *
6  * This software and supporting documentation were developed by
7  *
8  * OFFIS e.V.
9  * R&D Division Health
10  * Escherweg 2
11  * D-26121 Oldenburg, Germany
12  *
13  *
14  * Module: dcmdata
15  *
16  * Author: Gerd Ehlers
17  *
18  * Purpose: stack class
19  *
20  * Last Update: $Author: joergr $
21  * Update Date: $Date: 2010-10-14 13:15:42 $
22  * CVS/RCS Revision: $Revision: 1.14 $
23  * Status: $State: Exp $
24  *
25  * CVS/RCS Log at end of file
26  *
27  */
28 
29 #ifndef DCSTACK_H
30 #define DCSTACK_H
31 
32 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
33 #include "dcmtk/ofstd/oftypes.h"
34 
35 class DcmObject; // forward declaration
36 
37 
41 {
42 public:
46  DcmStackNode(DcmObject *obj);
47 
49  ~DcmStackNode();
50 
54  DcmObject *value() const;
55 
56 private:
58  DcmStackNode(const DcmStackNode &);
59 
62 
65 
68 
70  friend class DcmStack;
71 };
72 
73 
77 class DcmStack
78 {
79 public:
81  DcmStack();
82 
87  DcmStack(const DcmStack& arg);
88 
90  ~DcmStack();
91 
97  DcmStack& operator=(const DcmStack &arg);
98 
103  OFBool operator==(const DcmStack& arg) const;
104 
112  OFBool operator<(const DcmStack& arg) const;
113 
118  DcmObject* push( DcmObject *obj );
119 
123  DcmObject* pop();
124 
128  DcmObject* top() const;
129 
133  DcmObject* elem(const unsigned long number) const;
134 
138  OFBool empty() const;
139 
143  unsigned long card() const;
144 
147  void clear();
148 
149 private:
152 
154  unsigned long cardinality_;
155 };
156 
157 
158 #endif // DCSTACK_H
159 
160 
161 /*
162  * CVS/RCS Log:
163  * $Log: dcstack.h,v $
164  * Revision 1.14 2010-10-14 13:15:42 joergr
165  * Updated copyright header. Added reference to COPYRIGHT file.
166  *
167  * Revision 1.13 2010-03-01 09:08:44 uli
168  * Removed some unnecessary include directives in the headers.
169  *
170  * Revision 1.12 2005-12-08 16:28:42 meichel
171  * Changed include path schema for all DCMTK header files
172  *
173  * Revision 1.11 2004/04/14 11:50:21 joergr
174  * Added const qualifier to parameter to keep Sun CC 2.0.1 quiet.
175  *
176  * Revision 1.10 2003/06/02 16:52:20 meichel
177  * Cleaned up implementation of DcmStack, added doc++ comments
178  *
179  * Revision 1.9 2001/06/01 15:48:44 meichel
180  * Updated copyright header
181  *
182  * Revision 1.8 2000/03/08 16:26:18 meichel
183  * Updated copyright header.
184  *
185  * Revision 1.7 1999/03/31 09:24:47 meichel
186  * Updated copyright header in module dcmdata
187  *
188  *
189  */


Generated on Thu Dec 20 2012 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.8.2