]> Creatis software - gdcm.git/blobdiff - src/gdcmHeader.h
* Modification to compile with the distutils.
[gdcm.git] / src / gdcmHeader.h
index 7a518912cd2023870761f5b75bd1f2b59cb6606a..01caad0b8afb816701b94dd5088428ac5090ab2c 100644 (file)
@@ -1,4 +1,4 @@
-// $Header: /cvs/public/gdcm/src/Attic/gdcmHeader.h,v 1.40 2003/10/21 12:19:43 jpr Exp $
+// $Header: /cvs/public/gdcm/src/Attic/gdcmHeader.h,v 1.45 2003/12/22 12:46:16 regrain Exp $
 
 #ifndef GDCMHEADER_H
 #define GDCMHEADER_H
@@ -34,7 +34,6 @@ typedef std::map<VRKey, VRAtr> VRHT;    // Value Representation Hash Table
 ///        gdcmFile and gdcmHeader.
 
 class GDCM_EXPORT gdcmHeader {
-   void SkipBytes(guint32);
 private:
    /// Pointer to the Value Representation Hash Table which contains all
    /// the VR of the DICOM version3 public dictionary. 
@@ -56,7 +55,9 @@ private:
    gdcmElValSet ShaElValSet;
    /// Refering underlying filename.
    std::string filename; 
-   
+  
+   int enableSequences;
+
    // FIXME sw should be an enum e.g.
    //enum EndianType {
       //LittleEndian, 
@@ -80,42 +81,44 @@ private:
    void CheckSwap(void);
    void SwitchSwapToBigEndian(void);
    // CLEAN ME: NewManualElValToPubDict is NOT called any more.
-   gdcmElValue*  NewManualElValToPubDict(std::string NewTagName,
+   gdcmElValue *NewManualElValToPubDict(std::string NewTagName,
                                          std::string VR);
    void SetMaxSizeLoadElementValue(long);
 
-   gdcmDictEntry * GetDictEntryByNumber(guint16, guint16);
-   gdcmDictEntry * GetDictEntryByName(std::string Name);
+   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);
+   gdcmElValue *ReadNextElement(void);
+   gdcmElValue *NewElValueByNumber(guint16 group, guint16 element);
+   gdcmElValue *NewElValueByName  (std::string Name);
 
-   void FindLength(gdcmElValue *);
-   void FindVR(gdcmElValue *);
-   void LoadElementValue(gdcmElValue *);
+   void FindLength          (gdcmElValue *);
+   void FindVR              (gdcmElValue *);
+   void LoadElementValue    (gdcmElValue *);
    void LoadElementValueSafe(gdcmElValue *);
-   void SkipElementValue(gdcmElValue *);
-   void FixFoundLength(gdcmElValue*, guint32);
-   bool IsAnInteger(gdcmElValue *);
+   void SkipElementValue    (gdcmElValue *);
+   void FixFoundLength      (gdcmElValue *, guint32);
+   bool IsAnInteger         (gdcmElValue *);
    void LoadElements(void);
-   
+   void SkipBytes(guint32);
+
 protected:
-   FILE * fp;
    FileType filetype;
-   
+   FILE * fp;
+
    gdcmElValue * GetElValueByNumber(guint16 group, guint16 element);
    int CheckIfExistByNumber(guint16 Group, guint16 Elem );
 
-   guint16 SwapShort(guint16); // needed by gdcmFile
-   guint32 SwapLong(guint32);  // for JPEG Files :-(
-   bool OpenFile(bool exception_on_error = false)
-     throw(gdcmFileError);
-   bool CloseFile(void);
    int write(std::ostream&);   
    int anonymize(std::ostream&);  // FIXME : anonymize should be a friend ?
+
 public:
+   FILE *OpenFile(bool exception_on_error = false)
+     throw(gdcmFileError);
+   bool CloseFile(void);
+   FileType GetFileType(void);
+
    bool IsReadable(void);
    bool IsImplicitVRLittleEndianTransferSyntax(void);
    bool IsExplicitVRLittleEndianTransferSyntax(void);
@@ -132,13 +135,19 @@ public:
       
    virtual void ParseHeader(bool exception_on_error = false)
      throw(gdcmFormatError);
-   gdcmHeader(const char *filename, bool exception_on_error = false);
-   gdcmHeader( bool exception_on_error = false);
+     
+   gdcmHeader(bool exception_on_error = false);
+   gdcmHeader(const char *filename, 
+              bool  exception_on_error = false, 
+              bool  enable_sequences   = false);
+             
    virtual ~gdcmHeader();
 
    std::string GetFileName(void) {return filename;}
    
    size_t GetPixelOffset(void);
+   size_t GetPixelAreaLength(void);
+
    int    GetSwapCode(void) { return sw; }
 
    // TODO Swig int SetPubDict(std::string filename);
@@ -155,6 +164,8 @@ public:
    void * GetPubElValVoidAreaByNumber(guint16 Group, guint16 Elem);   
    void * LoadElementVoidArea(guint16 Group, guint16 Element);
    
+   ListTag & GetListElem(void) { return PubElValSet.GetListElem(); };
+
    TagElValueHT & GetPubElVal(void) { return PubElValSet.GetTagHt(); };
    void   PrintPubElVal(std::ostream & os = std::cout);
    void   PrintPubDict (std::ostream & os = std::cout);
@@ -199,14 +210,15 @@ public:
    std::string GetPixelType(void);  
    
    std::string GetTransferSyntaxName(void);
-   int    GetLUTLength(void);
+   int    HasLUT(void);
    int    GetLUTNbits(void);
-   void * GetLUTRed(void);
-   void * GetLUTGreen(void);
-   void * GetLUTBlue(void);
-   void * GetLUTRGB(void);
+   unsigned char * GetLUTRGBA(void);
            
+   void SetImageDataSize (size_t ExpectedSize);
 
+// System access
+   guint16 SwapShort(guint16); // needed by gdcmFile
+   guint32 SwapLong(guint32);  // for JPEG Files
 };
 
 #endif