]> Creatis software - gdcm.git/blobdiff - src/gdcmDataEntry.h
Add TestValidate, to be used as stand alone exec.
[gdcm.git] / src / gdcmDataEntry.h
index f8882df901ee27266ed7a7692e3782b6378b9272..7a85bbf32cc3deb2227ada1564cae9aa8b57ef85 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDataEntry.h,v $
   Language:  C++
-  Date:      $Date: 2005/10/23 15:32:30 $
-  Version:   $Revision: 1.4 $
+  Date:      $Date: 2005/10/26 15:56:51 $
+  Version:   $Revision: 1.6 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -35,10 +35,11 @@ namespace gdcm
  */
 class GDCM_EXPORT DataEntry  : public DocEntry
 {
+   gdcmTypeMacro(DataEntry);
+
 public:
-   DataEntry(DictEntry *e);
-   DataEntry(DocEntry *d); 
-   ~DataEntry();
+   static DataEntry *New(DictEntry *e) {return new DataEntry(e);}
+   static DataEntry *New(DocEntry *d) {return new DataEntry(d);}
 
 // Print
    void Print(std::ostream &os = std::cout, std::string const &indent = "");
@@ -73,9 +74,25 @@ public:
    /// \brief True if Entry owns its BinArea
    bool IsSelfArea() { return SelfArea; }
 
+   ///\brief values for current state of a DataEntry (internal use only)
+   typedef enum
+   {
+      STATE_LOADED    = 0x00,
+      STATE_NOTLOADED = 0x01,
+      STATE_UNFOUND   = 0x02,
+      STATE_UNREAD    = 0x03
+   } TValueState;
+   
+   ///\brief values for current pixel status of a DataEntry (internal use only)
+   typedef enum
+   {
+      FLAG_NONE       = 0x00,
+      FLAG_PIXELDATA  = 0x01
+   } TValueFlag;
+
    // State
-   void SetState(const char &state) { State = state; }
-   const char &GetState() const { return State; }
+   void SetState(const TValueState &state) { State = state; }
+   const TValueState &GetState() const { return State; }
    /// \brief true when value Entry not loaded  
    bool IsNotLoaded() { return State == STATE_NOTLOADED; }
    /// \brief true if Entry not found  
@@ -87,9 +104,9 @@ public:
 
    // Flags
    /// \brief sets the 'pixel data flag'   
-   void SetFlag(const char &flag) { Flag = flag; }
+   void SetFlag(const TValueFlag &flag) { Flag = flag; }
    /// \brief returns the 'pixel data flag'    
-   const char &GetFlag() const { return Flag; }
+   const TValueFlag &GetFlag() const { return Flag; }
    /// \brief true id Entry is a Pixel Data entry
    bool IsPixelData() { return (Flag & FLAG_PIXELDATA) != 0; }
 
@@ -101,23 +118,11 @@ public:
    /// \brief Header Elements too long will not be printed
    static void SetMaxSizePrintEntry(const uint32_t &size) { MaxSizePrintEntry = size; }
 
-   ///\brief values for current state of a DataEntry (internal use only)
-   typedef enum
-   {
-      STATE_LOADED    = 0x00,
-      STATE_NOTLOADED = 0x01,
-      STATE_UNFOUND   = 0x02,
-      STATE_UNREAD    = 0x03
-   } TValueState;
-   
-   ///\brief values for current pixel status of a DataEntry (internal use only)
-   typedef enum
-   {
-      FLAG_NONE       = 0x00,
-      FLAG_PIXELDATA  = 0x01
-   } TValueFlag;
-
 protected:
+   DataEntry(DictEntry *e);
+   DataEntry(DocEntry *d); 
+   ~DataEntry();
+
 // Methods :
    void NewBinArea(void);
    void DeleteBinArea(void);
@@ -134,9 +139,9 @@ protected:
 
 private:
    /// \brief 0 for straight entries, FLAG_PIXELDATA for Pixel Data entries
-   char Flag;
+   TValueFlag Flag;
    /// \brief Entry status : STATE_NOTLOADED,STATE_UNFOUND, STATE_UNREAD, 0
-   char State;
+   TValueState State;
 
    /// \brief Size threshold above which an element val
    ///        By default, this upper bound is fixed to 64 bytes.