X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmObject.h;h=7e842e0035b7c8ed4c3e90029b411503efd2dc84;hb=1aad11d86fa8d683d4f1a38b6f0483444e67f217;hp=f2f65c064ec6212ac2ad95a4a8a2711bf113da52;hpb=b0ab0e6b1085cf01026671066bcfe47a886cc752;p=gdcm.git diff --git a/src/gdcmObject.h b/src/gdcmObject.h index f2f65c06..7e842e00 100644 --- a/src/gdcmObject.h +++ b/src/gdcmObject.h @@ -6,28 +6,99 @@ #include #include #include "gdcmCommon.h" - - +#include "gdcmHeaderEntry.h" +#include "gdcmParser.h" +#include "gdcmDicomDirElement.h" //----------------------------------------------------------------------------- - -typedef std::list lstring; +class gdcmObject; +typedef std::list ListContent; //----------------------------------------------------------------------------- - -class gdcmObject { +/** + * \ingroup gdcmObject + * \brief Base object + */ +class GDCM_EXPORT gdcmObject +{ public: + /** + * \ingroup gdcmParser + * \brief Sets the print level for the Dicom Header + * \note 0 for Light Print; 1 for 'medium' Print, 2 for Heavy + */ + void SetPrintLevel(int level) + { printLevel = level; }; + virtual void Print(std::ostream &os = std::cout); - virtual std::string GetEntryByNumber(guint16 group, guint16 element)=0; - virtual std::string GetEntryByName(TagName name)=0; + std::string GetEntryByNumber(guint16 group, guint16 element); + std::string GetEntryByName(TagName name); + bool SetEntryByNumber(std::string val,guint16 group,guint16 element); + + TagHeaderEntryHT GetEntry(void); + ListTag GetListEntry(void); + + void ResetBoundaries(int flag); +/** + * \ingroup gdcmObject + * \brief returns an iterator on the first Header Entry (i.e Dicom Element), + * inside the DICOMDIR chained list, + * related to this 'Object' + * @return + */ + ListTag::iterator debut(void) + { return(beginObj);} + /** + * \ingroup gdcmObject + * \brief returns an iterator on the last Header Entry (i.e Dicom Element), + * inside the DICOMDIR chained list, + * related to this 'Object' + * @return + */ + ListTag::iterator fin (void) + { return(endObj); } protected: + // constructor and destructor are protected to avoid end user to instanciate this class. + gdcmObject(ListTag::iterator begin,ListTag::iterator end, + TagHeaderEntryHT *ptagHT, ListTag *plistEntries); + virtual ~gdcmObject(void); + + void FillObject(std::list elemList); - //to modify (I don't know the list type) : both iterators (beginning and end) - lstring::iterator beginIter; - lstring::iterator endIter; +/** +* \brief iterator on the first Header Entry (i.e Dicom Element), +* inside the DICOMDIR chained list, +* related to this 'Object' +*/ + ListTag::iterator beginObj; +/** +* \brief iterator on the last Header Entry (i.e Dicom Element), +* inside the DICOMDIR chained list, +* related to this 'Object' +*/ + ListTag::iterator endObj; +/** +* \brief pointer to the HTable of the gdcmParser, +* (because we don't know it within any gdcmObject) +*/ + TagHeaderEntryHT *ptagHT; +/** +* \brief pointer to the Chained List of the gdcmParser, +* (because we don't know it within any gdcmObject) +*/ + ListTag *plistEntries; +/** +* \brief detail level to be printed +*/ + int printLevel; + + /** + * \brief used to pass variables to FillObject function + * Works as 'global' variable + */ + std::list::iterator debInsertion, finInsertion, i,j; - //pointer to the data list - lstring *objectData; +private: };