Column-oriented GPU-accelerated Database Management System
CoGaDB
|
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