Program: gdcm
Module: $RCSfile: gdcmRLEFrame.h,v $
Language: C++
- Date: $Date: 2004/10/12 04:35:47 $
- Version: $Revision: 1.5 $
+ Date: $Date: 2007/08/22 16:14:04 $
+ Version: $Revision: 1.22 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
=========================================================================*/
-#ifndef GDCMRLEFRAME_H
-#define GDCMRLEFRAME_H
+#ifndef _GDCMRLEFRAME_H_
+#define _GDCMRLEFRAME_H_
-#include "gdcmCommon.h"
-namespace gdcm
+#include "gdcmBase.h"
+
+#include <iostream>
+#include <fstream>
+
+namespace GDCM_NAME_SPACE
{
/**
* \brief Utility class for summerizing the informations of a SINGLE RLE
* - the offsets of each segment of the frame,
* - the (corresponding) lengths of each segment of the frame.
*/
-class GDCM_EXPORT RLEFrame
+class GDCM_EXPORT RLEFrame : public Base
{
-friend class Document;
friend class File;
-friend class PixelConvert;
- int NumberFragments;
- long Offset[15];
- long Length[15];
- RLEFrame() { NumberFragments = 0; }
-
+friend class RLEFramesInfo;
+private:
+ RLEFrame() { NumberOfFragments = 0; }
+ void Print( std::ostream &os = std::cout, std::string const &indent = "" );
+
+ void SetNumberOfFragments(unsigned int number)
+ { NumberOfFragments = number; }
+ unsigned int GetNumberOfFragments() { return NumberOfFragments; }
+ void SetOffset(unsigned int id, long offset);
+ long GetOffset(unsigned int id);
+ void SetLength(unsigned int id, long length);
+ long GetLength(unsigned int id);
+
+ uint8_t *ReadAndDecompressRLEFrame( uint8_t *subRaw,long rawSegmentSize,
+ std::ifstream *fp );
+ bool ReadAndDecompressRLEFragment( uint8_t *subRaw, long fragmentSize,
+ long rawSegmentSize, std::ifstream *fp );
+
+ unsigned int NumberOfFragments;
+ long Offset[15];
+ long Length[15];
};
} // end namespace gdcm
//-----------------------------------------------------------------------------