/*========================================================================= Program: GDCM (Grassroots DICOM). A DICOM library Copyright (c) 2006-2011 Mathieu Malaterre All rights reserved. See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ #ifndef GDCMFILE_H #define GDCMFILE_H #include "gdcmObject.h" #include "gdcmDataSet.h" #include "gdcmFileMetaInformation.h" namespace gdcm_ns { /** * \brief a DICOM File * \details See PS 3.10 File: A File is an ordered string of zero or more bytes, where * the first byte is at the beginning of the file and the last byte at the end * of the File. Files are identified by a unique File ID and may by written, * read and/or deleted. * * \see Reader Writer */ class GDCM_EXPORT File : public Object { public: File(); ~File() override; friend std::ostream &operator<<(std::ostream &os, const File &val); /// Read std::istream &Read(std::istream &is); /// Write std::ostream const &Write(std::ostream &os) const; /// Get File Meta Information const FileMetaInformation &GetHeader() const { return Header; } /// Get File Meta Information FileMetaInformation &GetHeader() { return Header; } /// Set File Meta Information void SetHeader( const FileMetaInformation &fmi ) { Header = fmi; } /// Get Data Set const DataSet &GetDataSet() const { return DS; } /// Get Data Set DataSet &GetDataSet() { return DS; } /// Set Data Set void SetDataSet( const DataSet &ds) { DS = ds; } private: FileMetaInformation Header; DataSet DS; }; //----------------------------------------------------------------------------- inline std::ostream& operator<<(std::ostream &os, const File &val) { os << val.GetHeader() << std::endl; //os << val.GetDataSet() << std::endl; // FIXME assert(0); return os; } } // end namespace gdcm_ns #endif //GDCMFILE_H