OFFIS DCMTK  Version 3.6.0
dsrtncsr.h
1 /*
2  *
3  * Copyright (C) 2000-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: dcmsr
15  *
16  * Author: Joerg Riesmeier
17  *
18  * Purpose:
19  * classes: DSRTreeNodeCursor
20  *
21  * Last Update: $Author: joergr $
22  * Update Date: $Date: 2010-10-14 13:16:33 $
23  * CVS/RCS Revision: $Revision: 1.13 $
24  * Status: $State: Exp $
25  *
26  * CVS/RCS Log at end of file
27  *
28  */
29 
30 
31 #ifndef DSRTNCSR_H
32 #define DSRTNCSR_H
33 
34 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
35 
36 #include "dcmtk/ofstd/ofstring.h"
37 #include "dcmtk/ofstd/ofstack.h"
38 #include "dcmtk/ofstd/oflist.h"
39 
40 
41 /*-----------------------*
42  * forward declaration *
43  *-----------------------*/
44 
45 class DSRTreeNode;
46 
47 
48 /*-------------------*
49  * type definition *
50  *-------------------*/
51 
52 // this typedef is needed to avoid a warning on Sun CC 2.0.1
54 
55 
56 /*---------------------*
57  * class declaration *
58  *---------------------*/
59 
63 {
64 
65  public:
66 
70 
74  DSRTreeNodeCursor(const DSRTreeNodeCursor &cursor);
75 
80 
83  virtual ~DSRTreeNodeCursor();
84 
90 
96 
99  virtual void clear();
100 
104  virtual OFBool isValid() const;
105 
109  inline DSRTreeNode *getNode() const
110  {
111  return NodeCursor;
112  }
113 
118  const DSRTreeNode *getParentNode();
119 
124  const DSRTreeNode *getNextNode() const;
125 
129  size_t gotoPrevious();
130 
134  size_t gotoNext();
135 
139  size_t goUp();
140 
144  size_t goDown();
145 
151  size_t iterate(const OFBool searchIntoSub = OFTrue);
152 
157  size_t gotoNode(const size_t searchID);
158 
166  size_t gotoNode(const OFString &position,
167  const char separator = '.');
168 
174  size_t getNodeID() const;
175 
180  size_t getLevel() const;
181 
193  const OFString &getPosition(OFString &position,
194  const char separator = '.') const;
195 
196 
197  protected:
198 
201  void clearNodeCursorStack();
202 
208  size_t setCursor(DSRTreeNode *node);
209 
214 
216  size_t Position;
219 };
220 
221 
222 #endif
223 
224 
225 /*
226  * CVS/RCS Log:
227  * $Log: dsrtncsr.h,v $
228  * Revision 1.13 2010-10-14 13:16:33 joergr
229  * Updated copyright header. Added reference to COPYRIGHT file.
230  *
231  * Revision 1.12 2005-12-08 16:05:28 meichel
232  * Changed include path schema for all DCMTK header files
233  *
234  * Revision 1.11 2005/07/27 16:36:14 joergr
235  * Added flag to iterate() method indicating whether to perform a "deep search".
236  *
237  * Revision 1.10 2003/08/07 12:55:46 joergr
238  * Updated documentation to get rid of doxygen warnings.
239  *
240  * Revision 1.9 2001/12/18 09:55:06 meichel
241  * Introduced typedef to avoid warning on Sun CC 2.0.1
242  *
243  * Revision 1.8 2001/03/28 09:06:56 joergr
244  * Fixed bug in cycle/loop detection "algorithm".
245  *
246  * Revision 1.7 2000/11/09 20:32:08 joergr
247  * Added support for non-ASCII characters in HTML 3.2 (use numeric value).
248  *
249  * Revision 1.6 2000/11/07 18:14:31 joergr
250  * Enhanced support for by-reference relationships.
251  *
252  * Revision 1.5 2000/10/26 14:20:49 joergr
253  * Generalized routine to get and search for position strings ("1.2.3").
254  *
255  * Revision 1.4 2000/10/18 17:09:06 joergr
256  * Made some functions inline.
257  *
258  * Revision 1.3 2000/10/16 16:31:08 joergr
259  * Updated comments.
260  *
261  * Revision 1.2 2000/10/16 11:57:00 joergr
262  * Added doc++ comments.
263  *
264  * Revision 1.1 2000/10/13 07:49:34 joergr
265  * Added new module 'dcmsr' providing access to DICOM structured reporting
266  * documents (supplement 23). Doc++ documentation not yet completed.
267  *
268  *
269  */
DSRTreeNodeCursor()
default constructor
size_t setCursor(DSRTreeNode *node)
set cursor to specified node.
virtual ~DSRTreeNodeCursor()
destructor
template stack class.
Definition: ofstack.h:196
size_t Position
current position within the current level
Definition: dsrtncsr.h:216
const DSRTreeNode * getParentNode()
get pointer to parent node.
virtual OFBool isValid() const
check whether cursor currently points to a valid node
DSRTreeNode * getNode() const
get pointer to current node
Definition: dsrtncsr.h:109
virtual void clear()
clear all member variables
OFList< size_t > PositionList
list of position counters in upper levels
Definition: dsrtncsr.h:218
size_t gotoNext()
goto next node on the same level
Class for tree nodes.
Definition: dsrtree.h:46
size_t iterate(const OFBool searchIntoSub=OFTrue)
iterate over all nodes.
void clearNodeCursorStack()
clear the internal node cursor stack
OFStack< DSRTreeNodePointer > NodeCursorStack
stack of node pointers. Used to store the cursor position of upper levels.
Definition: dsrtncsr.h:213
size_t getNodeID() const
get current node ID.
size_t goDown()
goto first child node (one level down)
size_t gotoNode(const size_t searchID)
set cursor to specified node.
const OFString & getPosition(OFString &position, const char separator= '.') const
get position string of the current node.
size_t getLevel() const
get current level.
size_t goUp()
goto parent node (one level up)
a simple string class that implements a subset of std::string.
Definition: ofstring.h:86
const DSRTreeNode * getNextNode() const
get pointer to next node.
DSRTreeNode * NodeCursor
pointer current node
Definition: dsrtncsr.h:211
Class implementing a tree node cursor.
Definition: dsrtncsr.h:62
DSRTreeNodeCursor & operator=(const DSRTreeNodeCursor &cursor)
assignment operator
size_t gotoPrevious()
goto previous node on the same level


Generated on Wed Jan 4 2017 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.8.6