Drizzled Public API Documentation

drizzled::internal::io_cache_st Class Reference

Public Types

typedef int(* IO_CACHE_CALLBACK )(io_cache_st *)

Public Member Functions

int get ()
 Read one byte when buffer is empty.
int block_write (const void *, size_t, my_off_t)
void close_cached_file ()
bool real_open_cached_file ()
int end_io_cache ()
 Free an io_cache_st object.
int init_io_cache (int file, size_t cachesize, cache_type type, my_off_t seek_offset, bool use_async_io, myf cache_myflags)
 Initialize an io_cache_st object.
void init_functions ()
bool reinit_io_cache (cache_type type_arg, my_off_t seek_offset, bool use_async_io, bool clear_cache)
 Reset the cache.
void setup_io_cache ()
 Setup internal pointers inside io_cache_st.
bool open_cached_file (const char *dir, const char *prefix, size_t cache_size, myf cache_myflags)
int flush (int need_append_buffer_lock=1)
void clear ()
bool inited () const
my_off_t tell () const
int read (void *Buffer0, size_t Count)
int write (const void *Buffer0, size_t Count)

Public Attributes

my_off_t pos_in_file
my_off_t end_of_file
unsigned char * read_pos
unsigned char * read_end
unsigned char * buffer
unsigned char * request_pos
unsigned char * write_buffer
unsigned char * append_read_pos
unsigned char * write_pos
unsigned char * write_end
unsigned char ** current_pos
unsigned char ** current_end
int(* read_function )(io_cache_st *, unsigned char *, size_t)
int(* write_function )(io_cache_st *, const unsigned char *, size_t)
cache_type type
int error
IO_CACHE_CALLBACK pre_read
IO_CACHE_CALLBACK post_read
IO_CACHE_CALLBACK pre_close
void * arg
char * file_name
char * dir
char * prefix
int file
int seek_not_done
size_t buffer_length
size_t read_length
myf myflags
bool alloced_buffer

Detailed Description

Definition at line 30 of file iocache.h.

Member Function Documentation

int drizzled::internal::io_cache_st::end_io_cache ( )

Free an io_cache_st object.

It's currently safe to call this if one has called init_io_cache() on the 'info' object, even if init_io_cache() failed. This function is also safe to call twice with the same handle.

Parameters
infoio_cache_st Handle to free
Return values
0ok
#Error

Definition at line 685 of file mf_iocache.cc.

int drizzled::internal::io_cache_st::init_io_cache ( int  file_arg,
size_t  cachesize,
cache_type  type,
my_off_t  seek_offset,
bool  use_async_io,
myf  cache_myflags 
)

Initialize an io_cache_st object.

Parameters
fileFile that should be associated with the handler If == -1 then real_open_cached_file() will be called when it's time to open file.
cachesizeSize of buffer to allocate for read/write If == 0 then use my_default_record_cache_size
typeType of cache
seek_offsetWhere cache should start reading/writing
use_async_ioSet to 1 if we should use async_io (if avaiable)
cache_myflagsBitmap of different flags MY_WME | MY_FAE | MY_NABP | MY_FNABP | MY_DONT_CHECK_FILESIZE
Return values
0success
#error

Definition at line 174 of file mf_iocache.cc.

bool drizzled::internal::io_cache_st::reinit_io_cache ( cache_type  type_arg,
my_off_t  seek_offset,
bool  use_async_io,
bool  clear_cache 
)

Reset the cache.

Use this to reset cache to re-start reading or to change the type between READ_CACHE <-> WRITE_CACHE If we are doing a reinit of a cache where we have the start of the file in the cache, we are reusing this memory without flushing it to disk.

Definition at line 280 of file mf_iocache.cc.

Referenced by drizzled::FileSort::merge_many_buff(), drizzled::read_buffpek_from_file(), drizzled::FileSort::run(), and drizzled::update_query().

void drizzled::internal::io_cache_st::setup_io_cache ( )

Setup internal pointers inside io_cache_st.

This is called on automatically on init or reinit of io_cache_st It must be called externally if one moves or copies an io_cache_st object.

Parameters
infoCache handler to setup

Definition at line 121 of file mf_iocache.cc.

Referenced by drizzled::FileSort::merge_many_buff().


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