gdcmSwapper.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program: GDCM (Grassroots DICOM). A DICOM library
00004   Module:  $URL$
00005 
00006   Copyright (c) 2006-2010 Mathieu Malaterre
00007   All rights reserved.
00008   See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00015 #ifndef GDCMSWAPPER_H
00016 #define GDCMSWAPPER_H
00017 
00018 #include "gdcmSwapCode.h"
00019 
00020 namespace gdcm
00021 {
00022 
00023 
00024 #ifdef GDCM_WORDS_BIGENDIAN
00025 class SwapperDoOp
00026 {
00027 public:
00028   template <typename T> static T Swap(T val) {return val;}
00029   template <typename T> static void SwapArray(T *, unsigned int ) {}
00030 };
00031 
00032 class SwapperNoOp
00033 {
00034 public:
00035   template <typename T> static T Swap(T val);
00036   template <typename T>
00037   static void SwapArray(T *array, unsigned int n)
00038   {
00039     // TODO: need to unroll loop:
00040     for(unsigned int i = 0; i < n; ++i)
00041     {
00042       array[i] = Swap<T>(array[i]);
00043     }
00044   }
00045 };
00046 #else
00047 class SwapperNoOp
00048 {
00049 public:
00050   template <typename T> static T Swap(T val) {return val;}
00051   template <typename T> static void SwapArray(T *, unsigned int ) {}
00052 };
00053 
00054 class SwapperDoOp
00055 {
00056 public:
00057   template <typename T> static T Swap(T val);
00058   template <typename T>
00059   static void SwapArray(T *array, unsigned int n)
00060   {
00061     // TODO: need to unroll loop:
00062     for(unsigned int i = 0; i < n; ++i)
00063     {
00064       array[i] = Swap<T>(array[i]);
00065     }
00066   }
00067 };
00068 #endif
00069 
00070 
00071 } // end namespace gdcm
00072 
00073 #include "gdcmSwapper.txx"
00074 
00075 #endif //GDCMSWAPPER_H

Generated on Sat Dec 4 2010 08:58:47 for GDCM by doxygen 1.7.2
SourceForge.net Logo