OmniSciDB
b24e664e58
|
An AbstractBuffer is a unit of data management for a data manager. More...
#include <AbstractBuffer.h>
Public Member Functions | |
AbstractBuffer (const int device_id) | |
AbstractBuffer (const int device_id, const SQLTypeInfo sql_type) | |
virtual | ~AbstractBuffer () |
virtual void | read (int8_t *const dst, const size_t num_bytes, const size_t offset=0, const MemoryLevel dst_buffer_type=CPU_LEVEL, const int dst_device_id=-1)=0 |
virtual void | write (int8_t *src, const size_t num_bytes, const size_t offset=0, const MemoryLevel src_buffer_type=CPU_LEVEL, const int src_device_id=-1)=0 |
virtual void | reserve (size_t num_bytes)=0 |
virtual void | append (int8_t *src, const size_t num_bytes, const MemoryLevel src_buffer_type=CPU_LEVEL, const int device_id=-1)=0 |
virtual int8_t * | getMemoryPtr ()=0 |
virtual size_t | pageCount () const =0 |
virtual size_t | pageSize () const =0 |
virtual size_t | size () const =0 |
virtual size_t | reservedSize () const =0 |
virtual int | getDeviceId () const |
virtual MemoryLevel | getType () const =0 |
virtual int | pin () |
virtual int | unPin () |
virtual int | getPinCount () |
virtual bool | isDirty () const |
virtual bool | isAppended () const |
virtual bool | isUpdated () const |
virtual void | setDirty () |
virtual void | setUpdated () |
virtual void | setAppended () |
void | setSize (const size_t size) |
void | clearDirtyBits () |
void | initEncoder (const SQLTypeInfo tmp_sql_type) |
void | syncEncoder (const AbstractBuffer *src_buffer) |
Public Attributes | |
std::unique_ptr< Encoder > | encoder |
bool | has_encoder |
SQLTypeInfo | sql_type |
Protected Attributes | |
size_t | size_ |
bool | is_dirty_ |
bool | is_appended_ |
bool | is_updated_ |
int | device_id_ |
An AbstractBuffer is a unit of data management for a data manager.
Definition at line 47 of file AbstractBuffer.h.
|
inline |
Definition at line 49 of file AbstractBuffer.h.
|
inline |
Definition at line 56 of file AbstractBuffer.h.
References initEncoder().
|
inlinevirtual |
Definition at line 64 of file AbstractBuffer.h.
|
pure virtual |
Implemented in File_Namespace::FileBuffer, and Buffer_Namespace::Buffer.
Referenced by DateDaysEncoder< T, V >::appendData(), FixedLengthEncoder< T, V >::appendData(), NoneEncoder< T >::appendData(), StringNoneEncoder::appendData(), FixedLengthArrayNoneEncoder::appendData(), ArrayNoneEncoder::appendData(), File_Namespace::FileMgr::putBuffer(), and Buffer_Namespace::BufferMgr::putBuffer().
|
inline |
Definition at line 112 of file AbstractBuffer.h.
References is_appended_, is_dirty_, and is_updated_.
Referenced by File_Namespace::FileMgr::putBuffer(), and Buffer_Namespace::BufferMgr::putBuffer().
|
inlinevirtual |
Definition at line 87 of file AbstractBuffer.h.
References device_id_.
Referenced by Data_Namespace::DataMgr::copy(), File_Namespace::FileMgr::fetchBuffer(), Buffer_Namespace::BufferMgr::fetchBuffer(), Data_Namespace::DataMgr::free(), File_Namespace::FileMgr::putBuffer(), and Buffer_Namespace::BufferMgr::putBuffer().
|
pure virtual |
Implemented in File_Namespace::FileBuffer, and Buffer_Namespace::Buffer.
Referenced by ThrustAllocator::allocate(), ThrustAllocator::allocateScopedBuffer(), Fragmenter_Namespace::ArrayChunkConverter::ArrayChunkConverter(), Chunk_NS::Chunk::begin_iterator(), Data_Namespace::DataMgr::copy(), Fragmenter_Namespace::DateChunkConverter< BUFFER_DATA_TYPE >::DateChunkConverter(), File_Namespace::FileMgr::fetchBuffer(), Buffer_Namespace::BufferMgr::fetchBuffer(), Fragmenter_Namespace::FixedLenArrayChunkConverter::FixedLenArrayChunkConverter(), File_Namespace::FileMgr::putBuffer(), Buffer_Namespace::BufferMgr::putBuffer(), Fragmenter_Namespace::ScalarChunkConverter< BUFFER_DATA_TYPE, INSERT_DATA_TYPE >::ScalarChunkConverter(), and Fragmenter_Namespace::StringChunkConverter::StringChunkConverter().
|
inlinevirtual |
Reimplemented in Buffer_Namespace::Buffer.
Definition at line 93 of file AbstractBuffer.h.
|
pure virtual |
Implemented in File_Namespace::FileBuffer, Buffer_Namespace::CpuBuffer, and Buffer_Namespace::GpuCudaBuffer.
Referenced by Data_Namespace::DataMgr::copy(), File_Namespace::FileMgr::fetchBuffer(), Buffer_Namespace::BufferMgr::fetchBuffer(), Data_Namespace::DataMgr::free(), File_Namespace::FileMgr::putBuffer(), and Buffer_Namespace::BufferMgr::putBuffer().
|
inline |
Definition at line 117 of file AbstractBuffer.h.
References Encoder::Create(), encoder, logger::FATAL, SQLTypeInfoCore< TYPE_FACET_PACK >::get_type_name(), has_encoder, LOG_IF, and sql_type.
Referenced by AbstractBuffer(), Chunk_NS::Chunk::init_encoder(), File_Namespace::FileBuffer::readMetadata(), and syncEncoder().
|
inlinevirtual |
Definition at line 96 of file AbstractBuffer.h.
References is_appended_.
Referenced by File_Namespace::FileMgr::putBuffer(), and Buffer_Namespace::BufferMgr::putBuffer().
|
inlinevirtual |
Reimplemented in File_Namespace::FileBuffer, and Buffer_Namespace::Buffer.
Definition at line 95 of file AbstractBuffer.h.
References is_dirty_.
Referenced by StringNoneEncoder::appendData(), FixedLengthArrayNoneEncoder::appendData(), ArrayNoneEncoder::appendData(), File_Namespace::FileMgr::fetchBuffer(), File_Namespace::FileMgr::putBuffer(), and Buffer_Namespace::BufferMgr::putBuffer().
|
inlinevirtual |
Definition at line 97 of file AbstractBuffer.h.
References is_updated_.
Referenced by File_Namespace::FileMgr::fetchBuffer(), Buffer_Namespace::BufferMgr::fetchBuffer(), File_Namespace::FileMgr::putBuffer(), and Buffer_Namespace::BufferMgr::putBuffer().
|
pure virtual |
Implemented in File_Namespace::FileBuffer, and Buffer_Namespace::Buffer.
|
pure virtual |
Implemented in File_Namespace::FileBuffer, and Buffer_Namespace::Buffer.
|
inlinevirtual |
Reimplemented in Buffer_Namespace::Buffer.
Definition at line 91 of file AbstractBuffer.h.
Referenced by Buffer_Namespace::BufferMgr::fetchBuffer().
|
pure virtual |
Implemented in File_Namespace::FileBuffer, and Buffer_Namespace::Buffer.
Referenced by StringNoneEncoder::appendData(), ArrayNoneEncoder::appendData(), File_Namespace::FileMgr::fetchBuffer(), and Buffer_Namespace::BufferMgr::fetchBuffer().
|
pure virtual |
Implemented in Buffer_Namespace::Buffer, and File_Namespace::FileBuffer.
Referenced by StringNoneEncoder::appendData(), FixedLengthArrayNoneEncoder::appendData(), ArrayNoneEncoder::appendData(), File_Namespace::FileMgr::fetchBuffer(), and Buffer_Namespace::BufferMgr::fetchBuffer().
|
pure virtual |
Implemented in File_Namespace::FileBuffer, and Buffer_Namespace::Buffer.
|
inlinevirtual |
|
inlinevirtual |
Definition at line 99 of file AbstractBuffer.h.
References is_dirty_.
Referenced by StringNoneEncoder::appendData(), FixedLengthArrayNoneEncoder::appendData(), ArrayNoneEncoder::appendData(), and File_Namespace::FileMgr::init().
|
inline |
Definition at line 111 of file AbstractBuffer.h.
Referenced by File_Namespace::FileMgr::fetchBuffer(), Buffer_Namespace::BufferMgr::fetchBuffer(), File_Namespace::FileMgr::init(), and File_Namespace::FileMgr::putBuffer().
|
inlinevirtual |
|
pure virtual |
Implemented in File_Namespace::FileBuffer, and Buffer_Namespace::Buffer.
Referenced by StringNoneEncoder::appendData(), ArrayNoneEncoder::appendData(), Chunk_NS::Chunk::begin_iterator(), Data_Namespace::DataMgr::copy(), File_Namespace::FileMgr::fetchBuffer(), Buffer_Namespace::BufferMgr::fetchBuffer(), Encoder::getMetadata(), File_Namespace::FileMgr::putBuffer(), Buffer_Namespace::BufferMgr::putBuffer(), and setSize().
|
inline |
Definition at line 125 of file AbstractBuffer.h.
References encoder, has_encoder, initEncoder(), and sql_type.
Referenced by File_Namespace::FileMgr::fetchBuffer(), Buffer_Namespace::BufferMgr::fetchBuffer(), File_Namespace::FileMgr::init(), File_Namespace::FileMgr::putBuffer(), and Buffer_Namespace::BufferMgr::putBuffer().
|
inlinevirtual |
Reimplemented in Buffer_Namespace::Buffer.
Definition at line 92 of file AbstractBuffer.h.
Referenced by Buffer_Namespace::BufferMgr::fetchBuffer(), and Chunk_NS::Chunk::unpin_buffer().
|
pure virtual |
Implemented in File_Namespace::FileBuffer, and Buffer_Namespace::Buffer.
Referenced by Data_Namespace::DataMgr::copy(), File_Namespace::FileMgr::putBuffer(), and Buffer_Namespace::BufferMgr::putBuffer().
|
protected |
Definition at line 144 of file AbstractBuffer.h.
Referenced by getDeviceId(), Buffer_Namespace::GpuCudaBuffer::readData(), and Buffer_Namespace::GpuCudaBuffer::writeData().
std::unique_ptr<Encoder> Data_Namespace::AbstractBuffer::encoder |
Definition at line 135 of file AbstractBuffer.h.
Referenced by Chunk_NS::Chunk::appendData(), Chunk_NS::Chunk::getChunkBuffer(), Chunk_NS::Chunk::getNumElemsForBytesInsertData(), Chunk_NS::Chunk::init_encoder(), initEncoder(), File_Namespace::FileBuffer::readMetadata(), syncEncoder(), and File_Namespace::FileBuffer::writeMetadata().
bool Data_Namespace::AbstractBuffer::has_encoder |
Definition at line 136 of file AbstractBuffer.h.
Referenced by initEncoder(), File_Namespace::FileBuffer::readMetadata(), syncEncoder(), and File_Namespace::FileBuffer::writeMetadata().
|
protected |
Definition at line 142 of file AbstractBuffer.h.
Referenced by Buffer_Namespace::Buffer::append(), File_Namespace::FileBuffer::append(), clearDirtyBits(), isAppended(), setAppended(), Buffer_Namespace::Buffer::write(), and File_Namespace::FileBuffer::write().
|
protected |
Definition at line 141 of file AbstractBuffer.h.
Referenced by Buffer_Namespace::Buffer::append(), File_Namespace::FileBuffer::append(), clearDirtyBits(), isDirty(), setAppended(), setDirty(), setUpdated(), Buffer_Namespace::Buffer::write(), and File_Namespace::FileBuffer::write().
|
protected |
Definition at line 143 of file AbstractBuffer.h.
Referenced by clearDirtyBits(), isUpdated(), setUpdated(), Buffer_Namespace::Buffer::write(), and File_Namespace::FileBuffer::write().
|
protected |
Definition at line 140 of file AbstractBuffer.h.
Referenced by Buffer_Namespace::Buffer::append(), File_Namespace::FileBuffer::append(), Buffer_Namespace::Buffer::read(), File_Namespace::FileBuffer::readMetadata(), setSize(), Buffer_Namespace::Buffer::write(), File_Namespace::FileBuffer::write(), and File_Namespace::FileBuffer::writeMetadata().
SQLTypeInfo Data_Namespace::AbstractBuffer::sql_type |
Definition at line 137 of file AbstractBuffer.h.
Referenced by Encoder::getMetadata(), initEncoder(), FixedLengthArrayNoneEncoder::is_null(), File_Namespace::FileBuffer::readMetadata(), syncEncoder(), FixedLengthArrayNoneEncoder::update_elem_stats(), ArrayNoneEncoder::update_elem_stats(), and File_Namespace::FileBuffer::writeMetadata().