]> Creatis software - gdcm.git/blobdiff - src/gdcmParser.h
2004-01-31 Jean-Pierre Roux
[gdcm.git] / src / gdcmParser.h
index 7165817e0a8ebe8822eb1fc4f0cfcf6c1dd0b09d..74db3d233c6fd53d53f5360a01ef42217fbdb442 100644 (file)
@@ -29,8 +29,8 @@ typedef std::map<GroupKey, int> GroupHT;
 
 //-----------------------------------------------------------------------------
 /*
- * \defgroup gdcmHeader
- * \brief
+ * \defgroup gdcmParser
+ * \brief used by both gdcmHeader and gdcmDicomDir
  */
 class GDCM_EXPORT gdcmParser
 {
@@ -128,7 +128,6 @@ protected:
    IterHT           GetHeaderEntrySameNumber(guint16 group, guint16 element); 
 // IterHT           GetHeaderEntrySameName  (std::string Name); 
 
-
    void LoadHeaderEntrySafe(gdcmHeaderEntry *);
 
    void UpdateGroupLength(bool SkipSequence = false, FileType type = ImplicitVR);
@@ -140,6 +139,7 @@ protected:
 
    static const unsigned int HEADER_LENGTH_TO_READ; 
    static const unsigned int MAX_SIZE_LOAD_ELEMENT_VALUE;
+   static const unsigned int MAX_SIZE_PRINT_ELEMENT_VALUE;
 
 protected:
    int enableSequences;
@@ -150,7 +150,7 @@ protected:
    
 private:
    // Read
-   void Parse(bool exception_on_error = false) throw(gdcmFormatError);
+   bool ParseHeader(bool exception_on_error = false) throw(gdcmFormatError);
 
    void LoadHeaderEntries    (void);
    void LoadHeaderEntry      (gdcmHeaderEntry *);
@@ -173,29 +173,31 @@ private:
    void    SkipBytes(guint32);
 
    void Initialise(void);
-   void CheckSwap(void);
+   bool CheckSwap(void);
    void SwitchSwapToBigEndian(void);
    void SetMaxSizeLoadEntry(long);
+   void SetMaxSizePrintEntry(long);
 
-   // Dict
+   // DictEntry  related utilities
    gdcmDictEntry *GetDictEntryByName  (std::string Name);
    gdcmDictEntry *GetDictEntryByNumber(guint16, guint16);
-
-   // HeaderEntry related utilities
-   gdcmHeaderEntry *ReadNextHeaderEntry   (void);
-   gdcmHeaderEntry *NewHeaderEntryByNumber(guint16 group, 
-                                           guint16 element);
-   gdcmHeaderEntry *NewHeaderEntryByName  (std::string Name);
    gdcmDictEntry *NewVirtualDictEntry(guint16 group, 
                                       guint16 element,
                                       std::string vr     = "Unknown",
                                       std::string fourth = "Unknown",
                                       std::string name   = "Unknown");
    gdcmDictEntry *NewVirtualDictEntry(gdcmHeaderEntry *);
+   
+   // HeaderEntry related utilities
+   gdcmHeaderEntry *ReadNextHeaderEntry   (void);
+   gdcmHeaderEntry *NewHeaderEntryByNumber(guint16 group, 
+                                           guint16 element);
+   gdcmHeaderEntry *NewHeaderEntryByName  (std::string Name);
+
 
-   // Deprecated (Not used)
-   gdcmHeaderEntry *NewManualHeaderEntryToPubDict(std::string NewTagName,
-                                                  std::string VR);
+   // Deprecated (Not used) --> commented out
+   //gdcmHeaderEntry *NewManualHeaderEntryToPubDict(std::string NewTagName,
+   //                                               std::string VR);
    guint32 GenerateFreeTagKeyInGroup(guint16 group);
 
    // Refering underlying filename.
@@ -221,6 +223,11 @@ private:
    // this upper bound is fixed to 1024 bytes (which might look reasonable
    // when one considers the definition of the various VR contents).
    guint32 MaxSizeLoadEntry;
+   // Size treshold above which an element value will NOT be *printed* in 
+   // order no to polute the screen output. By default,
+   // this upper bound is fixed to 64 bytes.   
+   guint32 MaxSizePrintEntry;
+
 };
 
 //-----------------------------------------------------------------------------