Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

Select.h

Go to the documentation of this file.
00001 #ifndef Impala_Core_Column_Select_h
00002 #define Impala_Core_Column_Select_h
00003 
00004 #include "Core/Column/InvalidColumn.h"
00005 
00006 namespace Impala
00007 {
00008 namespace Core
00009 {
00010 namespace Column
00011 {
00012 
00013 
00019 template <class C1, class C2>
00020 inline int
00021 Select(C1* dst, C2* src, bool* filter, int dstStart, int srcStart, int srcSize)
00022 {
00023     int nr = 0;
00024     for (int i=srcStart ; i<srcSize ; i++)
00025     {
00026         if (!filter || filter[i])
00027         {
00028             dst->Set(dstStart + nr++, src->Get(i));
00029             if (dstStart + nr >= dst->Capacity())
00030                 return nr;
00031         }
00032     }
00033     return nr;
00034 }
00035 
00036 inline int
00037 Select(InvalidColumn* dst, InvalidColumn* src, bool* filter, int dstStart,
00038        int srcStart, int srcSize)
00039 {
00040     // ignore
00041     return 0;
00042 }
00043 
00044 template <class C2>
00045 inline int
00046 Select(InvalidColumn* dst, C2* src, bool* filter, int dstStart, int srcStart,
00047        int srcSize)
00048 {
00049     // ignore
00050     return 0;
00051 }
00052 
00053 template <class C1>
00054 inline int
00055 Select(C1* dst, InvalidColumn* src, bool* filter, int dstStart, int srcStart,
00056        int srcSize)
00057 {
00058     // ignore
00059     return 0;
00060 }
00061 
00062 } // namespace Column
00063 } // namespace Core
00064 } // namespace Impala
00065 
00066 #endif

Generated on Fri Mar 19 09:31:05 2010 for ImpalaSrc by  doxygen 1.5.1