MeVisLabToolboxReference
MeVis/Foundation/Sources/DicomTree/MLDicomTree/DCMTree_FileCache.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //-----------------------------------------------------------------------------
00003 
00004 #ifndef DCMTREE_FILECHACHE_H
00005 #define DCMTREE_FILECHACHE_H
00006 
00007 #include "DCMTree_TagId.h"
00008 
00009 #include <string>
00010 
00011 namespace DCMTree
00012 {
00013   // Abstract base class for a DICOM tag cache
00014   // a DICOM tag can be left in file and read on demand
00015   // The file cache class handles the read requests
00016 
00017   class DCMTREE_EXPORT FileCache
00018   {
00019   public:
00020     // init the file cache for filename filename and the DICOM tag id
00021     virtual void init(std::string const & filename, TagId const & id) =0;
00022     virtual bool isInitialized() const =0;
00023     // copy DICOM attribute value to buffer dest with size bufSize
00024     // caller needs to prepare buffer with right size
00025     // For values with multiple entries (especially multiframe images)
00026     // idx is the index of the requested value
00027     virtual bool getValue(boost::uint32_t idx, unsigned char *dest, boost::uint32_t bufSize) =0;
00028     virtual bool getValue(boost::uint32_t idx, unsigned char *dest, boost::uint32_t bufSize,
00029                           std::string & colorModel, unsigned int & fragment) =0;
00030   };
00031 }
00032 
00033 #endif