-class GDCM_EXPORT gdcmHeader {
-private:
- /// Pointer to the Value Representation Hash Table which contains all
- /// the VR of the DICOM version3 public dictionary.
- gdcmVR *dicom_vr; // Not a class member for thread-safety reasons
- /// Pointer to global dictionary container
- gdcmDictSet *Dicts; // Not a class member for thread-safety reasons
- /// Public dictionary used to parse this header
- gdcmDict *RefPubDict;
- /// Optional "shadow dictionary" (private elements) used to parse this
- /// header
- gdcmDict *RefShaDict;
- /// Pointer to the Transfert Syntax Hash Table which contains all
- /// the TS of the DICOM version3 public dictionary.
- gdcmTS *dicom_ts; // Not a class member for thread-safety reasons
-
- /// ELement VALueS parsed with the PUBlic dictionary.
- gdcmElValSet PubElValSet;
- /// ELement VALueS parsed with the SHAdow dictionary.
- gdcmElValSet ShaElValSet;
- /// Refering underlying filename.
- std::string filename;
-
- int enableSequences;
-
- // FIXME sw should be an enum e.g.
- //enum EndianType {
- //LittleEndian,
- //BadLittleEndian,
- //BigEndian,
- //BadBigEndian};
- /// Swap code e.g. little, big, bad-big, bad-little endian). Warning:
- /// this code is not fixed during header parsing.
- int sw;
-
- /// Size treshold above which an element value will NOT be loaded in
- /// memory (to avoid loading the image/volume itself). By default,
- /// this upper bound is fixed to 1024 bytes (which might look reasonable
- /// when one considers the definition of the various VR contents).
- guint32 MaxSizeLoadElementValue;
-
- guint16 ReadInt16(void);
- guint32 ReadInt32(void);
- guint32 FindLengthOB(void);
- void Initialise(void);
- void CheckSwap(void);
- void SwitchSwapToBigEndian(void);
- // CLEAN ME: NewManualElValToPubDict is NOT called any more.
- gdcmElValue *NewManualElValToPubDict(std::string NewTagName,
- std::string VR);
- void SetMaxSizeLoadElementValue(long);
-
- gdcmDictEntry *GetDictEntryByNumber(guint16, guint16);
- gdcmDictEntry *GetDictEntryByName (std::string Name);
-
- // ElValue related utilities
- gdcmElValue *ReadNextElement(void);
- gdcmElValue *NewElValueByNumber(guint16 group, guint16 element);
- gdcmElValue *NewElValueByName (std::string Name);
-
- void FindLength (gdcmElValue *);
- void FindVR (gdcmElValue *);
- void LoadElementValue (gdcmElValue *);
- void LoadElementValueSafe(gdcmElValue *);
- void SkipElementValue (gdcmElValue *);
- void FixFoundLength (gdcmElValue *, guint32);
- bool IsAnInteger (gdcmElValue *);
- void LoadElements(void);
- void SkipBytes(guint32);
-
-protected:
- FileType filetype;
- FILE * fp;