+ 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;
+ /// Gets the first entry of any type of set
+ virtual DocEntry *GetFirstEntry()=0;
+ /// Gets the next entry of any type of set
+ 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)
+ ValEntry *GetValEntry(uint16_t group, uint16_t elem);
+ /// \brief Gets a BinEntry, identified by its (group,elem)
+ BinEntry *GetBinEntry(uint16_t group, uint16_t elem);
+ /// \brief Gets a SeqEntry, identified by its (group,elem)
+ SeqEntry *GetSeqEntry(uint16_t group, uint16_t elem);
+
+ bool SetValEntry(std::string const &content,
+ uint16_t group, uint16_t elem);
+ bool SetBinEntry(uint8_t *content, int lgth,
+ uint16_t group, uint16_t elem);
+ bool SetValEntry(std::string const &content, ValEntry *entry);
+ bool SetBinEntry(uint8_t *content, int lgth, BinEntry *entry);