]> Creatis software - gdcm.git/blobdiff - src/gdcmTS.h
Fix mistypings
[gdcm.git] / src / gdcmTS.h
index 14d4909cc12a38557868a2975f960b457eb92bc9..deb30770ae3d7c3b7539b20a82146978a5ecf501 100644 (file)
-// gdcmTS.h
+/*=========================================================================
+                                                                                
+  Program:   gdcm
+  Module:    $RCSfile: gdcmTS.h,v $
+  Language:  C++
+  Date:      $Date: 2007/08/22 16:14:05 $
+  Version:   $Revision: 1.30 $
+                                                                                
+  Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
+  l'Image). All rights reserved. See Doc/License.txt or
+  http://www.creatis.insa-lyon.fr/Public/Gdcm/License.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 notices for more information.
+                                                                                
+=========================================================================*/
 
-#ifndef GDCMTS_H
-#define GDCMTS_H
+#ifndef _GDCMTS_H_
+#define _GDCMTS_H_
+
+#include "gdcmRefCounter.h"
 
 #include <map>
 #include <string>
-#include "gdcmCommon.h"
+#include <iostream>
 
+namespace GDCM_NAME_SPACE 
+{
+//-----------------------------------------------------------------------------
 typedef std::string TSKey;
 typedef std::string TSAtr;
-typedef std::map<TSKey, TSAtr> TSHT;    // Transfert Syntax Hash Table
+typedef std::map<TSKey, TSAtr> TSHT;    // Transfer Syntax Hash Table
 
-/// Container for dicom Transfert Syntax Hash Table
-/// \note   This is a singleton
-class GDCM_EXPORT gdcmTS {
-private:
-   TSHT ts;    
+
+//-----------------------------------------------------------------------------
+/**
+ * \brief Container for dicom 'Transfer Syntax' Hash Table
+ * \note   This is a singleton
+ */
+class GDCM_EXPORT TS : public RefCounter
+{
+   gdcmTypeMacro(TS);
+
+public:
+   enum SpecialType {
+   ImplicitVRLittleEndian = 0,
+   ImplicitVRBigEndianPrivateGE,
+   ExplicitVRLittleEndian,
+   DeflatedExplicitVRLittleEndian,
+   ExplicitVRBigEndian,
+   JPEGBaselineProcess1,
+   JPEGExtendedProcess2_4,
+   JPEGExtendedProcess3_5,
+   JPEGSpectralSelectionProcess6_8,
+   JPEGFullProgressionProcess10_12,
+   JPEGLosslessProcess14,
+   JPEGLosslessProcess14_1,
+   JPEGLSLossless,
+   JPEGLSNearLossless,
+   JPEG2000Lossless,  
+   JPEG2000,
+   RLELossless,
+   MPEG2MainProfile,
+   
+// The following are *not* Transfer Syntaxes, but SOP uid   
+   UltrasoundImageStorage_Retired,
+   
+   UnknownTS
+   };
 
 public:
-   gdcmTS(void);
-   ~gdcmTS();
-   int Count(TSKey key);
-   std::string GetValue(TSKey key);
+/// \brief Constructs a gdcmTS with a RefCounter
+   static TS *New() {return new TS();}
+
+   virtual void Print(std::ostream &os = std::cout, 
+                      std::string const & = "" );
+
+   int Count(TSKey const &key);
+   TSAtr const &GetValue(TSKey const &key);
+   bool IsTransferSyntax(TSKey const &key);
+   bool IsRLELossless(TSKey const &key);
+   bool IsJPEGLossless(TSKey const&key);
+   bool IsJPEGLossy(TSKey const&key);
+   bool IsJPEG2000(TSKey const &key);
+   bool IsJPEG(TSKey const &key);
+   bool IsJPEGLS(TSKey const &key);
+   bool IsMPEG(TSKey const &key);
+   
+   // This should be deprecated very soon
+   SpecialType GetSpecialTransferSyntax(TSKey const &key);
+   const char* GetSpecialTransferSyntax(SpecialType t);
+   
+   // The following are *not* Transfer Syntaxes.      
+   bool IsUltrasoundImageStorage_Retired(TSKey const &key);
+  
+protected:
+   TS();
+   ~TS();
+
+private:
+   TSHT TsMap;
 };
+} // end namespace gdcm
 
+//-----------------------------------------------------------------------------
 #endif