]> Creatis software - gdcm.git/blob - src/gdcmElValSet.h
Adding :
[gdcm.git] / src / gdcmElValSet.h
1 // $Header: /cvs/public/gdcm/src/Attic/gdcmElValSet.h,v 1.15 2003/06/26 13:07:01 jpr Exp $
2
3 #ifndef GDCMELVALSET_H
4 #define GDCMELVALSET_H
5
6 #include <stdio.h>    // FIXME For FILE on GCC only
7 #include <map>
8 #include "gdcmCommon.h"
9 #include "gdcmElValue.h"
10
11 ////////////////////////////////////////////////////////////////////////////
12 // Container for a set of successfully parsed ElValues.
13
14 typedef std::map<TagKey, gdcmElValue*> TagElValueHT;
15 typedef std::map<std::string, gdcmElValue*> TagElValueNameHT;
16
17 class GDCM_EXPORT gdcmElValSet {
18    TagElValueHT tagHt;             // Both accesses with a TagKey or with a
19    TagElValueNameHT NameHt;        // the DictEntry.Name are required.
20    
21    typedef std::string GroupKey;
22    typedef std::map<GroupKey, int> GroupHT; 
23 public: 
24    ~gdcmElValSet();
25    void Add(gdcmElValue*);
26                         
27    void Print(std::ostream &);
28    void PrintByName(std::ostream &);
29    int  Write(FILE *fp, FileType type);
30
31    gdcmElValue* GetElementByNumber(guint16 group, guint16 element);
32    gdcmElValue* GetElementByName  (std::string);
33    std::string  GetElValueByNumber(guint16 group, guint16 element);
34    std::string  GetElValueByName  (std::string);
35         
36    TagElValueHT & GetTagHt(void);       
37         
38    int SetElValueByNumber(std::string content, guint16 group, guint16 element);
39    int SetElValueByName  (std::string content, std::string TagName);
40         
41    int SetElValueLengthByNumber(guint32 l, guint16 group, guint16 element);
42    int SetElValueLengthByName  (guint32 l, std::string TagName);
43
44    guint32 GenerateFreeTagKeyInGroup(guint16 group);
45    int CheckIfExistByNumber(guint16 Group, guint16 Elem );
46         
47 private:
48    void UpdateGroupLength(bool SkipSequence = false, FileType type = ImplicitVR);
49    void WriteElements(FileType type, FILE *);
50 };
51
52 #endif