Zero  0.1.0
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
partition_t Class Reference

#include <partition.h>

Public Types

enum  { XFERSIZE = 8192 }
 
enum  { invalid_fhdl = -1 }
 
typedef smlevel_0::partition_number_t partition_number_t
 

Public Member Functions

 partition_t (log_storage *, partition_number_t)
 
virtual ~partition_t ()
 
partition_number_t num () const
 
rc_t open_for_append ()
 
rc_t open_for_read ()
 
rc_t close_for_append ()
 
rc_t close_for_read ()
 
rc_t read (logrec_t *&r, lsn_t &ll, lsn_t *prev_lsn=nullptr)
 
void release_read ()
 
size_t read_block (void *buf, size_t count, off_t offset)
 
rc_t flush (lsn_t lsn, const char *const buf, long start1, long end1, long start2, long end2)
 
bool is_open_for_read () const
 
bool is_open_for_append () const
 
size_t get_size (bool must_be_skip=true)
 
void set_size (size_t size)
 
rc_t prime_buffer (char *buffer, lsn_t lsn, size_t &prime_offset)
 
void destroy ()
 

Private Member Functions

void fsync_delayed (int fd)
 
rc_t scan_for_size (bool must_be_skip)
 

Private Attributes

partition_number_t _num
 
log_storage_owner
 
long _size
 
int _fhdl_rd
 
int _fhdl_app
 
char * _readbuf
 
size_t _max_partition_size
 
char * _mmap_buffer
 
mutex _read_mutex
 

Static Private Attributes

static int _artificial_flush_delay = 0
 

Member Typedef Documentation

§ partition_number_t

typedef smlevel_0::partition_number_t partition_t::partition_number_t

Member Enumeration Documentation

§ anonymous enum

anonymous enum
Enumerator
XFERSIZE 

§ anonymous enum

anonymous enum
Enumerator
invalid_fhdl 

Constructor & Destructor Documentation

§ partition_t()

partition_t::partition_t ( log_storage owner,
partition_number_t  num 
)

§ ~partition_t()

virtual partition_t::~partition_t ( )
inlinevirtual

Member Function Documentation

§ close_for_append()

rc_t partition_t::close_for_append ( )

§ close_for_read()

rc_t partition_t::close_for_read ( )

§ destroy()

void partition_t::destroy ( )

§ flush()

rc_t partition_t::flush ( lsn_t  lsn,
const char *const  buf,
long  start1,
long  end1,
long  start2,
long  end2 
)

§ fsync_delayed()

void partition_t::fsync_delayed ( int  fd)
private

§ get_size()

size_t partition_t::get_size ( bool  must_be_skip = true)

§ is_open_for_append()

bool partition_t::is_open_for_append ( ) const
inline

§ is_open_for_read()

bool partition_t::is_open_for_read ( ) const
inline

§ num()

partition_number_t partition_t::num ( ) const
inline

§ open_for_append()

rc_t partition_t::open_for_append ( )

§ open_for_read()

rc_t partition_t::open_for_read ( )

§ prime_buffer()

rc_t partition_t::prime_buffer ( char *  buffer,
lsn_t  lsn,
size_t &  prime_offset 
)

§ read()

rc_t partition_t::read ( logrec_t *&  r,
lsn_t ll,
lsn_t prev_lsn = nullptr 
)

§ read_block()

size_t partition_t::read_block ( void *  buf,
size_t  count,
off_t  offset 
)

§ release_read()

void partition_t::release_read ( )

§ scan_for_size()

rc_t partition_t::scan_for_size ( bool  must_be_skip)
private

§ set_size()

void partition_t::set_size ( size_t  size)
inline

Member Data Documentation

§ _artificial_flush_delay

int partition_t::_artificial_flush_delay = 0
staticprivate

§ _fhdl_app

int partition_t::_fhdl_app
private

§ _fhdl_rd

int partition_t::_fhdl_rd
private

§ _max_partition_size

size_t partition_t::_max_partition_size
private

§ _mmap_buffer

char* partition_t::_mmap_buffer
private

§ _num

partition_number_t partition_t::_num
private

§ _owner

log_storage* partition_t::_owner
private

§ _read_mutex

mutex partition_t::_read_mutex
private

§ _readbuf

char* partition_t::_readbuf
private

§ _size

long partition_t::_size
private

The documentation for this class was generated from the following files: