+2004-01-19 Benoit Regrain
+ * src/gdcmFile.cxx : bug fix concerning the close of file
+ * src/gdcmParser.[h|cxx] : remove obvious Pub informations
+
2004-01-19 Benoit Regrain
* removal of file gdcmHeader2.cxx
* split class gdcmHeader into gdcmParser and gdcmHeader, with gdcmHeader
// Troubles expected on Big-Endian processors ?
}
+
+ Header->CloseFile();
return(true);
}
// ---------------------- Run Length Encoding
if (Header->IsRLELossLessTransferSyntax()) {
- bool res = (bool)gdcm_read_RLE_file (fp,destination);
- return res;
+ bool res = (bool)gdcm_read_RLE_file (fp,destination);
+ Header->CloseFile();
+ return res;
}
// --------------- SingleFrame/Multiframe JPEG Lossless/Lossy/2000
guint16 ItemTagGr,ItemTagEl;
int ln;
- // Position on begining of Jpeg Pixels
+ // Position on begining of Jpeg Pixels
fread(&ItemTagGr,2,1,fp); // Reading (fffe) : Item Tag Gr
fread(&ItemTagEl,2,1,fp); // Reading (e000) : Item Tag El
}
// parsing fragments until Sequence Delim. Tag found
- while ( ( ItemTagGr == 0xfffe) && (ItemTagEl != 0xe0dd) ) {
+ while ( ( ItemTagGr == 0xfffe) && (ItemTagEl != 0xe0dd) ) {
// --- for each Fragment
fread(&ln,4,1,fp);
return true;
}
-/**
- * \ingroup gdcmParser
- * \brief Parses the header of the file but WITHOUT loading element values.
- */
-void gdcmParser::Parse(bool exception_on_error) throw(gdcmFormatError)
-{
- gdcmHeaderEntry *newHeaderEntry = (gdcmHeaderEntry *)0;
-
- rewind(fp);
- CheckSwap();
- while ( (newHeaderEntry = ReadNextHeaderEntry()) )
- {
- SkipHeaderEntry(newHeaderEntry);
- AddHeaderEntry(newHeaderEntry);
- }
-}
-
/**
* \ingroup gdcmParser
* \brief
//-----------------------------------------------------------------------------
// Private
+/**
+ * \ingroup gdcmParser
+ * \brief Parses the header of the file but WITHOUT loading element values.
+ */
+void gdcmParser::Parse(bool exception_on_error) throw(gdcmFormatError)
+{
+ gdcmHeaderEntry *newHeaderEntry = (gdcmHeaderEntry *)0;
+
+ rewind(fp);
+ CheckSwap();
+ while ( (newHeaderEntry = ReadNextHeaderEntry()) )
+ {
+ SkipHeaderEntry(newHeaderEntry);
+ AddHeaderEntry(newHeaderEntry);
+ }
+}
+
/**
* \ingroup gdcmParser
* \brief Loads the element values of all the Header Entries pointed in the
void gdcmParser::LoadHeaderEntries(void)
{
rewind(fp);
- for (ListTag::iterator i = GetPubListEntry().begin();
- i != GetPubListEntry().end();
+ for (ListTag::iterator i = GetListEntry().begin();
+ i != GetListEntry().end();
++i)
{
LoadHeaderEntry(*i);
* \brief returns a ref to the Dicom Header H table (multimap)
* return the Dicom Header H table
*/
- inline TagHeaderEntryHT &GetPubEntry(void) { return tagHT; };
+ inline TagHeaderEntryHT &GetEntry(void) { return tagHT; };
/**
* \ingroup gdcmHeader
* \brief returns a ref to the Dicom Header chained list
* return the Dicom Header chained list
*/
- inline ListTag &GetPubListEntry(void) { return listEntries; };
+ inline ListTag &GetListEntry(void) { return listEntries; };
// Read (used in gdcmFile)
FILE *OpenFile(bool exception_on_error = false) throw(gdcmFileError);
bool CloseFile(void);
- virtual void Parse(bool exception_on_error = false) throw(gdcmFormatError);
// Write (used in gdcmFile)
virtual bool Write(FILE *, FileType);
private:
// Read
+ void Parse(bool exception_on_error = false) throw(gdcmFormatError);
+
void LoadHeaderEntries (void);
void LoadHeaderEntry (gdcmHeaderEntry *);
void AddHeaderEntry (gdcmHeaderEntry *);