]> Creatis software - gdcm.git/blob - src/gdcmBinEntry.cxx
ENH: Fix a shadow variable
[gdcm.git] / src / gdcmBinEntry.cxx
1 /*=========================================================================
2                                                                                 
3   Program:   gdcm
4   Module:    $RCSfile: gdcmBinEntry.cxx,v $
5   Language:  C++
6   Date:      $Date: 2004/08/16 16:30:32 $
7   Version:   $Revision: 1.22 $
8                                                                                 
9   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
10   l'Image). All rights reserved. See Doc/License.txt or
11   http://www.creatis.insa-lyon.fr/Public/Gdcm/License.htm for details.
12                                                                                 
13      This software is distributed WITHOUT ANY WARRANTY; without even
14      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15      PURPOSE.  See the above copyright notices for more information.
16                                                                                 
17 =========================================================================*/
18
19 #include "gdcmBinEntry.h"
20 #include "gdcmDebug.h"
21
22
23 //-----------------------------------------------------------------------------
24 // Constructor / Destructor
25
26 /**
27  * \brief   Constructor from a given gdcmBinEntry
28  */
29 gdcmBinEntry::gdcmBinEntry(gdcmDictEntry* e) : gdcmValEntry(e)
30 {
31    VoidArea = NULL;
32 }
33
34 /**
35  * \brief   Constructor from a given gdcmBinEntry
36  * @param   e Pointer to existing Doc entry
37  */
38 gdcmBinEntry::gdcmBinEntry(gdcmDocEntry* e) : gdcmValEntry(e->GetDictEntry())
39 {
40    UsableLength = e->GetLength();
41    ReadLength   = e->GetReadLength();
42    ImplicitVR   = e->IsImplicitVR();
43    Offset       = e->GetOffset();
44    PrintLevel   = e->GetPrintLevel();
45    SQDepthLevel = e->GetDepthLevel();
46
47    VoidArea = NULL; // let's be carefull !
48 }
49
50 /**
51  * \brief   Canonical destructor.
52  */
53 gdcmBinEntry::~gdcmBinEntry()
54 {
55    if (VoidArea)
56    {
57       free (VoidArea);
58       VoidArea = NULL; // let's be carefull !
59    }
60 }
61
62
63 //-----------------------------------------------------------------------------
64 // Print
65 /*
66  * \brief   canonical Printer
67  */
68  
69 void gdcmBinEntry::Print(std::ostream &os)
70 {
71    gdcmDocEntry::Print(os);
72    std::ostringstream s;
73    void *voidArea = GetVoidArea();
74    if (voidArea)
75    {
76       s << " [gdcm::Binary data loaded with length is "
77         << GetLength() << "]";
78    }
79    else
80    {
81       if ( GetLength() == 0 )
82       {
83          s << " []";
84       }
85       else 
86       {
87          s << " [gdcm::Binary data NOT loaded]";
88       }
89          
90    }
91    os << s.str();
92 }
93
94 /*
95  * \brief   canonical Writer
96  */
97 void gdcmBinEntry::Write(FILE *fp, FileType filetype)
98 {
99    gdcmDocEntry::Write(fp, filetype);
100    void *voidArea = GetVoidArea();
101    int lgr = GetLength();
102    if (voidArea)
103    {
104       // there is a 'non string' LUT, overlay, etc
105       fwrite ( voidArea,(size_t)lgr ,(size_t)1 ,fp); // Elem value
106    }
107 }
108 //-----------------------------------------------------------------------------
109 // Public
110
111 //-----------------------------------------------------------------------------
112 // Protected
113
114 //-----------------------------------------------------------------------------
115 // Private
116    
117 //-----------------------------------------------------------------------------