Column-oriented GPU-accelerated Database Management System
CoGaDB
/home/sebastian/gpudbms/trunk/cogadb/include/gpu/gpu_positionlist.hpp
Go to the documentation of this file.
00001 #pragma once
00002 #ifndef __CUDACC__
00003         #error "cannot compile header file __FILE__: you have to use nvcc!"
00004 #endif
00005 
00006 #include <gpu/gpu_base_column.hpp>
00007 
00008 #include <thrust/device_vector.h>
00009 
00010 namespace CoGaDB{
00011         namespace gpu{          
00012 
00013                 class Impl_GPU_Positionlist : public GPU_Positionlist{
00014                         public:
00015                         Impl_GPU_Positionlist();
00016                         virtual ~Impl_GPU_Positionlist();
00017                         explicit Impl_GPU_Positionlist(const std::vector<TID>* pos_list);
00018                         explicit Impl_GPU_Positionlist(const thrust::device_vector<TID>& pos_list);
00019                         virtual void clear();
00020                         virtual const GPU_PositionlistPtr aggregate(GPU_PositionlistPtr dev_tids) const;
00021                         virtual bool insert(std::vector<TID>* pos_list);
00022                         virtual size_t size() const throw();
00023                         virtual const std::type_info& type() const throw();
00024                         virtual const boost::any get(TID tid);
00025                         virtual const PositionListPtr toHostPositionlist() const;
00026                         virtual void print() const throw();
00027                         thrust::device_vector<TID>& getContent();
00028                         private:
00029                         thrust::device_vector<TID> pos_list_;
00030                 };
00031 
00032                 
00033 
00034         }; //end namespace gpu
00035 }; //end namespace CogaDB
00036                 
00037 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines