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 ILOG_VAR(Impala.Core.Column.CopyRev);
00020 if ((nrElem > src->Capacity()) || (nrElem > dst->Capacity()))
00021 {
00022 ILOG_ERROR("Incompatible range");
00023 return;
00024 }
00025 for (int i=0 ; i<nrElem ; i++)
00026 dst->Set(i, src->Get(nrElem - 1 - i));
00027 }
00028
00029 inline void
00030 CopyRev(InvalidColumn* dst, InvalidColumn* src, int nrElem)
00031 {
00032
00033 }
00034
00035 template <class C2>
00036 inline void
00037 CopyRev(InvalidColumn* dst, C2* src, int nrElem)
00038 {
00039
00040 }
00041
00042 template <class C1>
00043 inline void
00044 CopyRev(C1* dst, InvalidColumn* src, int nrElem)
00045 {
00046
00047 }
00048
00049 }
00050 }
00051 }
00052
00053 #endif