-// gdcmObject.h
-//-----------------------------------------------------------------------------
+/*=========================================================================
+
+ Program: gdcm
+ Module: $RCSfile: gdcmObject.h,v $
+ Language: C++
+ Date: $Date: 2004/06/20 18:08:48 $
+ Version: $Revision: 1.17 $
+
+ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
+ l'Image). All rights reserved. See Doc/License.txt or
+ http://www.creatis.insa-lyon.fr/Public/Gdcm/License.htm for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+
#ifndef GDCMOBJECT_H
#define GDCMOBJECT_H
#include <string>
#include <list>
#include "gdcmCommon.h"
-#include "gdcmHeaderEntry.h"
-#include "gdcmParser.h"
+#include "gdcmDocEntry.h"
+#include "gdcmDocument.h"
#include "gdcmDicomDirElement.h"
+#include "gdcmSQItem.h"
+
//-----------------------------------------------------------------------------
class gdcmObject;
typedef std::list<gdcmObject *> ListContent;
//-----------------------------------------------------------------------------
-class GDCM_EXPORT gdcmObject
+/**
+ * \ingroup gdcmObject
+ * \brief Base object
+ */
+class GDCM_EXPORT gdcmObject : public gdcmSQItem
{
public:
- gdcmObject(ListTag::iterator begin,ListTag::iterator end,
- TagHeaderEntryHT *ptagHT, ListTag *plistEntries);
- ~gdcmObject(void);
/**
- * \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);
-
- 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); }
+ TagDocEntryHT GetEntry(void);
+ void FillObject(std::list<gdcmElement> elemList);
protected:
-void FillObject(std::list<gdcmElement> elemList);
+ // Constructor and destructor are protected to avoid end user to
+ // instanciate from this class.
+ gdcmObject(TagDocEntryHT *ptagHT, int depth = 0);
+ virtual ~gdcmObject(void);
-/**
-* \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
-*/
+// Members :
+ ///\brief detail level to be printed
int printLevel;
-
-/// used to pass variables to FillObject function
-/// Work as 'global' variables
- std::list<gdcmHeaderEntry *>::iterator debInsertion, finInsertion, i,j;
private:
-
};
//-----------------------------------------------------------------------------