+ virtual void WriteContent (std::ofstream *fp, FileType filetype) = 0;
+
+ /// \brief Remove all Entry in the entry set
+ virtual void ClearEntry() = 0;
+ /// \brief adds any type of entry to the entry set
+ virtual bool AddEntry(DocEntry *Entry) = 0;
+ /// \brief Removes any type of entry out of the entry set, and destroys it
+ virtual bool RemoveEntry(DocEntry *EntryToRemove)=0;
+ /// \brief Removes any type of entry out of the entry set, DOESN'T destroy it
+ virtual bool RemoveEntryNoDestroy(DocEntry *EntryToRemove)= 0;
+
+ virtual DocEntry *GetFirstEntry()=0;
+ virtual DocEntry *GetNextEntry()=0;
+
+ virtual std::string GetEntryValue(uint16_t group, uint16_t elem);
+ virtual void *GetEntryBinArea(uint16_t group, uint16_t elem);
+ virtual int GetEntryLength(uint16_t group, uint16_t elem);
+ virtual std::string GetEntryVR(uint16_t group, uint16_t elem);
+
+ /// \brief Gets any type of DocEntry, identified by its (group,elem)
+ virtual DocEntry *GetDocEntry(uint16_t group,uint16_t elem) = 0;
+ /// \brief Gets a ValEntry, identified by its (group,elem)
+ virtual ValEntry *GetValEntry(uint16_t group,uint16_t elem);
+ /// \brief Gets a BinEntry, identified by its (group,elem)
+ virtual BinEntry *GetBinEntry(uint16_t group,uint16_t elem);
+ /// \brief Gets a SeqEntry, identified by its (group,elem)
+ virtual SeqEntry *GetSeqEntry(uint16_t group,uint16_t elem);
+
+ virtual bool SetValEntry(std::string const &content,
+ uint16_t group, uint16_t elem);
+ virtual bool SetBinEntry(uint8_t *content, int lgth,
+ uint16_t group, uint16_t elem);
+ virtual bool SetValEntry(std::string const &content, ValEntry *entry);
+ virtual bool SetBinEntry(uint8_t *content, int lgth, BinEntry *entry);