-// $Header: /cvs/public/gdcm/src/Attic/gdcmElValSet.h,v 1.5 2003/03/24 13:11:28 frog Exp $
+// $Header: /cvs/public/gdcm/src/Attic/gdcmElValSet.h,v 1.10 2003/04/09 14:04:53 jpr Exp $
#ifndef GDCMELVALSET_H
#define GDCMELVALSET_H
typedef map<string, gdcmElValue*> TagElValueNameHT;
class GDCM_EXPORT gdcmElValSet {
- TagElValueHT tagHt; // Both accesses with a TagKey or with a
- TagElValueNameHT NameHt; // the DictEntry.Name are required.
+ TagElValueHT tagHt; // Both accesses with a TagKey or with a
+ TagElValueNameHT NameHt; // the DictEntry.Name are required.
+
+ typedef string GroupKey;
+ typedef map<GroupKey, int> GroupHT;
+
public:
- void Add(gdcmElValue*);
- void ReplaceOrCreate(gdcmElValue*);
- void Print(ostream &);
- void PrintByName(ostream &);
- int Write(FILE *fp);
- int WriteAcr(FILE *fp);
- gdcmElValue* GetElementByNumber(guint32 group, guint32 element);
- gdcmElValue* GetElementByName (string);
- string GetElValueByNumber(guint32 group, guint32 element);
- string GetElValueByName (string);
+ void Add(gdcmElValue*);
+
+ void Print(ostream &);
+ void PrintByName(ostream &);
+ int Write(FILE *fp, FileType type);
+
+ gdcmElValue* GetElementByNumber(guint16 group, guint16 element);
+ gdcmElValue* GetElementByName (string);
+ string GetElValueByNumber(guint16 group, guint16 element);
+ string GetElValueByName (string);
- TagElValueHT & GetTagHt(void);
+ TagElValueHT & GetTagHt(void);
- int SetElValueByNumber(string content, guint32 group, guint32 element);
- int SetElValueByName (string content, string TagName);
+ int SetElValueByNumber(string content, guint16 group, guint16 element);
+ int SetElValueByName (string content, string TagName);
- int SetElValueLengthByNumber(guint32 l, guint32 group, guint32 element);
- int SetElValueLengthByName (guint32 l, string TagName);
- guint32 GenerateFreeTagKeyInGroup(guint32 group);
+ int SetElValueLengthByNumber(guint32 l, guint16 group, guint16 element);
+ int SetElValueLengthByName (guint32 l, string TagName);
+ guint32 GenerateFreeTagKeyInGroup(guint16 group);
+
+private:
+ void UpdateGroupLength(bool SkipSequence = false, FileType type = ImplicitVR);
+ void WriteElements(FileType type, FILE *);
};
#endif