]> 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
34    /// \brief creates a new SQITEM for this SeQuence.
35    gdcmSQItem * NewItem(void);
36     
37    gdcmDocEntry *NewDocEntryByNumber(guint16 group, guint16 element);    
38    gdcmDocEntry *NewDocEntryByName  (std::string Name); 
39    gdcmDocEntry *GetDocEntryByNumber(guint16 group, guint16 element);
40
41    void SetDepthLevel(int depth);
42          
43 protected:
44
45 private:
46 // Variables
47
48    /// \brief If this Sequence is in delimitor mode (length =0xffffffff) or not
49    bool delimitor_mode;
50    
51    /// \brief Chained list of SQ Items
52    ListSQItem items;
53    
54    /// \brief sequence terminator item 
55    gdcmDocEntry *seq_term;
56 };
57
58 //-----------------------------------------------------------------------------
59 #endif
60