00001 #ifndef Impala_Core_Column_CopyRev_h
00002 #define Impala_Core_Column_CopyRev_h
00003
00004 #include <iostream>
00005 #include "Core/Column/InvalidColumn.h"
00006
00007 namespace Impala
00008 {
00009 namespace Core
00010 {
00011 namespace Column
00012 {
00013
00014
00015 template <class C1, class C2>
00016 inline void
00017 CopyRev(C1* dst, C2* src, int nrElem)
00018 {
00019 if ((nrElem > src->Capacity()) || (nrElem > dst->Capacity()))
00020 {
00021 std::cout << "Column::CopyRev: incompatible range" << std::endl;
00022 return;
00023 }
00024 for (int i=0 ; i<nrElem ; i++)
00025 dst->Set(i, src->Get(nrElem - 1 - i));
00026 }
00027
00028 inline void
00029 CopyRev(InvalidColumn* dst, InvalidColumn* src, int nrElem)
00030 {
00031
00032 }
00033
00034 template <class C2>
00035 inline void
00036 CopyRev(InvalidColumn* dst, C2* src, int nrElem)
00037 {
00038
00039 }
00040
00041 template <class C1>
00042 inline void
00043 CopyRev(C1* dst, InvalidColumn* src, int nrElem)
00044 {
00045
00046 }
00047
00048 }
00049 }
00050 }
00051
00052 #endif