-// gdcmValEntry.h
-//-----------------------------------------------------------------------------
-#ifndef GDCMValEntry_H
-#define GDCMValEntry_H
+/*=========================================================================
+
+ Program: gdcm
+ Module: $RCSfile: gdcmValEntry.h,v $
+ Language: C++
+ Date: $Date: 2005/03/22 11:39:04 $
+ Version: $Revision: 1.41 $
+
+ 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.html 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.
+
+=========================================================================*/
-#include <iostream>
-#include <stdio.h>
+#ifndef GDCMVALENTRY_H
+#define GDCMVALENTRY_H
#include "gdcmDocEntry.h"
+#include "gdcmContentEntry.h"
+
+#include <iostream>
+
+namespace gdcm
+{
//-----------------------------------------------------------------------------
/**
- * \ingroup gdcmBinEntry
- * \brief The dicom header of a Dicom file contains a set of such entries
- * (when successfuly parsed against a given Dicom dictionary)
- * This one contains a 'non string' value
+ * \brief Any Dicom Document (File or DicomDir) contains
+ * a set of DocEntry - Dicom entries -
+ * ValEntry is an elementary DocEntry (i.e. a ContentEntry,
+ * as opposed to SeqEntry)
+ * whose content is 'std::string representable' : characters,
+ * or integers (loaded in memory as a std::string)
+ * ValEntry is a specialisation of ContentEntry
*/
-class GDCM_EXPORT gdcmValEntry : public gdcmDocEntry {
-
+class GDCM_EXPORT ValEntry : public ContentEntry
+{
public:
- gdcmValEntry(gdcmDictEntry* e);
- ~gdcmValEntry(void);
+ // Contructors and Destructor are public.
+ ValEntry(DictEntry *e);
+ ValEntry(DocEntry *d);
- /// \brief Returns the 'Value' (e.g. "Dupond Marcel") converted into a
- /// 'string', if it's stored as an integer in the Dicom Header of the
- /// current Dicom Header Entry
- inline std::string GetValue(void) { return value; };
-
- /// Sets the value (string) of the current Dicom Header Entry
- inline void SetValue(std::string val) { value = val; };
-
- virtual void Print(std::ostream &os = std::cout);
-
-protected:
+ ~ValEntry();
- char* voidArea; // clean it out later
-
-private:
+ // Other accessors are inherited from gdcm::ContentEntry
+
+ void Print(std::ostream &os = std::cout, std::string const &indent = "");
-// Variables
-
- /// \brief Header Entry value, stored as a std::string (VR will be used,
- /// later, to decode)
+ void WriteContent(std::ofstream *fp, FileType filetype);
- std::string value;
+ /// Sets the value (string) of the current Dicom entry.
+ /// The size is updated
+ void SetValue(std::string const &val);
+
+
+ /// \brief returns the size threshold above which an element value
+ /// will NOT be *printed* in order no to polute the screen output
+ static long GetMaxSizePrintEntry() { return ValEntry::MaxSizePrintEntry; };
+
+ static void SetMaxSizePrintEntry(long);
+
+protected:
+private:
+ /// \brief Size threshold above which an element val
+ /// By default, this upper bound is fixed to 64 bytes.
+ static uint32_t MaxSizePrintEntry;
};
+} // end namespace gdcm
+
//-----------------------------------------------------------------------------
#endif