]> Creatis software - gdcm.git/blob - src/gdcmSeqEntry.h
Jean-Pierre Roux
[gdcm.git] / src / gdcmSeqEntry.h
1 // gdcmSeqEntry.h
2
3 #ifndef GDCMSQDOCENTRY_H
4 #define GDCMSQDOCENTRY_H
5
6 #include <list>
7
8 #include "gdcmSQItem.h"
9 #include "gdcmDocEntry.h"
10
11 //-----------------------------------------------------------------------------
12 typedef std::list<gdcmSQItem *> ListSQItem;
13 //-----------------------------------------------------------------------------
14
15 class GDCM_EXPORT gdcmSeqEntry : public gdcmDocEntry 
16 {
17 public:
18    gdcmSeqEntry(gdcmDictEntry* e, int depth);
19    ~gdcmSeqEntry(void);
20    
21    virtual void Print(std::ostream &os = std::cout); 
22
23    /// \brief   returns the SQITEM chained List for this SeQuence.
24    inline ListSQItem &GetSQItems() {return items;};
25       
26    /// \brief Sets the delimitor mode
27    inline void SetDelimitorMode(bool dm) { delimitor_mode = dm;}
28
29    /// \brief Sets the Sequence Delimitation Item
30    inline void SetSequenceDelimitationItem(gdcmDocEntry * e) { seq_term = e;}
31        
32    void AddEntry(gdcmSQItem *it, int itemNumber);       
33    gdcmSQItem *GetSQItemByOrdinalNumber(int itemNumber);        
34
35    void SetDepthLevel(int depth);
36          
37 protected:
38
39 private:
40 // Variables
41
42    /// \brief If this Sequence is in delimitor mode (length =0xffffffff) or not
43    bool delimitor_mode;
44    
45    /// \brief Chained list of SQ Items
46    ListSQItem items;
47    
48    /// \brief sequence terminator item 
49    gdcmDocEntry *seq_term;
50 };
51
52 //-----------------------------------------------------------------------------
53 #endif
54