]> Creatis software - gdcm.git/blobdiff - src/gdcmDocument.h
*** empty log message ***
[gdcm.git] / src / gdcmDocument.h
index 4166b318315212890507a498e458598a19f81144..c51a7d5dab32f4d24dc6373571b2bfe79de7af3f 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDocument.h,v $
   Language:  C++
-  Date:      $Date: 2005/01/25 15:44:24 $
-  Version:   $Revision: 1.101 $
+  Date:      $Date: 2005/01/31 12:19:34 $
+  Version:   $Revision: 1.103 $
  
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -34,8 +34,6 @@ class ValEntry;
 class BinEntry;
 class SeqEntry;
 class Dict;
-class RLEFramesInfo;
-class JPEGFragmentsInfo;
 
 //-----------------------------------------------------------------------------
 /**
@@ -44,15 +42,6 @@ class JPEGFragmentsInfo;
 class GDCM_EXPORT Document : public ElementSet
 {
 public:
-// Informations contained in the gdcm::Document
-   virtual bool IsReadable();
-   FileType GetFileType();
-
-   std::string GetTransferSyntax();
-   /// returns RLEFramesInfo 
-   RLEFramesInfo *GetRLEInfo() { return RLEInfo; }
-   /// returns JPEGFragmentsInfo
-   JPEGFragmentsInfo *GetJPEGInfo() { return JPEGInfo; }
 
 // Dictionaries
    virtual void PrintPubDict (std::ostream &os = std::cout);
@@ -63,19 +52,31 @@ public:
    bool SetShaDict(Dict* dict);
    bool SetShaDict(DictKey const &dictName);
 
+// Informations contained in the gdcm::Document
+   virtual bool IsReadable();
+   bool IsDicomV3();
+   bool IsPapyrus();
+   FileType GetFileType();
+   std::string GetTransferSyntax();
+   /// Return the Transfer Syntax as a string
+   std::string GetTransferSyntaxName();
+
 // Swap code
    /// 'Swap code' accessor (see \ref SwapCode )
    int GetSwapCode() { return SwapCode; }
    // System access (meaning endian related !?)
-   uint16_t SwapShort(uint16_t);   // needed by Document
-   uint32_t SwapLong(uint32_t);    // needed by Document
-   uint16_t UnswapShort(uint16_t); // needed by Document
-   uint32_t UnswapLong(uint32_t);  // needed by Document
+   uint16_t SwapShort(uint16_t);
+   uint32_t SwapLong(uint32_t);
+   /// \brief  Unswaps back the bytes of 2-bytes long integer 
+   ///         so they agree with the processor order.
+   uint16_t UnswapShort(uint16_t a) { return SwapShort(a);}
+   /// \brief   Unswaps back the bytes of 4-byte long integer 
+   ///         so they agree with the processor order.
+   uint32_t UnswapLong(uint32_t a) { return SwapLong(a);}
    
 // Ordering of Documents
    bool operator<(Document &document);
 
-public:
 // File I/O
    /// Accessor to \ref Filename
    const std::string &GetFileName() const { return Filename; }
@@ -93,12 +94,6 @@ public:
 
    void LoadDocEntrySafe(DocEntry *entry);
 
-   /// Return the Transfer Syntax as a string
-   std::string GetTransferSyntaxName();
-
-   bool IsDicomV3();
-   bool IsPapyrus();
-
 protected:
 // Methods
    // Constructor and destructor are protected to forbid end user 
@@ -108,11 +103,9 @@ protected:
    Document( std::string const &filename );
    virtual ~Document();
    
-   void ReadAndSkipEncapsulatedBasicOffsetTable();
-   void ComputeRLEInfo();
-   void ComputeJPEGFragmentInfo();
-   // Entry
-
+   uint16_t ReadInt16() throw ( FormatError );
+   uint32_t ReadInt32() throw ( FormatError );
+   void     SkipBytes(uint32_t);
    int ComputeGroup0002Length( FileType filetype );
 
 // Variables
@@ -147,21 +140,13 @@ protected:
 
    /// After opening the file, we read HEADER_LENGTH_TO_READ bytes.
    static const unsigned int HEADER_LENGTH_TO_READ; 
-
    /// \brief Elements whose value is longer than MAX_SIZE_LOAD_ELEMENT_VALUE
    /// are NOT loaded.
    static const unsigned int MAX_SIZE_LOAD_ELEMENT_VALUE;
-
    /// \brief Elements whose value is longer than  MAX_SIZE_PRINT_ELEMENT_VALUE
    /// are NOT printed.
    static const unsigned int MAX_SIZE_PRINT_ELEMENT_VALUE;
 
-   /// Store the RLE frames info obtained during parsing of pixels.
-   RLEFramesInfo *RLEInfo;
-
-   /// Store the JPEG fragments info obtained during parsing of pixels.
-   JPEGFragmentsInfo *JPEGInfo;
-
 private:
 // Methods
    // Read
@@ -177,19 +162,12 @@ private:
    std::string GetDocEntryValue  (DocEntry *entry);
    std::string GetDocEntryUnvalue(DocEntry *entry);
 
-
    void SkipDocEntry          (DocEntry *entry);
    void SkipToNextDocEntry    (DocEntry *entry);
 
    void FixDocEntryFoundLength(DocEntry *entry,uint32_t l);
    bool IsDocEntryAnInteger   (DocEntry *entry);
 
-   uint16_t ReadInt16() throw ( FormatError );
-   uint32_t ReadInt32() throw ( FormatError );
-   void     SkipBytes(uint32_t);
-   bool     ReadTag(uint16_t, uint16_t);
-   uint32_t ReadTagLength(uint16_t, uint16_t);
-
    void Initialize();
    bool CheckSwap();
    void SwitchByteSwapCode();
@@ -199,17 +177,12 @@ private:
    // DocEntry related utilities
    DocEntry *ReadNextDocEntry();
 
-//  uint32_t GenerateFreeTagKeyInGroup(uint16_t group);
-//  void BuildFlatHashTableRecurse( TagDocEntryHT &builtHT,
-//                                   DocEntrySet *set );
-
    void HandleBrokenEndian  (uint16_t &group, uint16_t &elem);
    void HandleOutOfGroup0002(uint16_t &group, uint16_t &elem);
 
 // Variables
    /// Public dictionary used to parse this header
    Dict *RefPubDict;
-   
    /// \brief Optional "shadow dictionary" (private elements) used to parse
    /// this header
    Dict *RefShaDict;
@@ -225,8 +198,9 @@ private:
    /// is fixed to 64 bytes.
    uint32_t MaxSizePrintEntry;   
 
-private:
-
+//  uint32_t GenerateFreeTagKeyInGroup(uint16_t group);
+//  void BuildFlatHashTableRecurse( TagDocEntryHT &builtHT,
+//                                   DocEntrySet *set );
 };
 
 } // end namespace gdcm