14
14
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
19
#include "drizzled/internal/my_sys.h"
17
#include <drizzled/common_includes.h>
20
18
#include "transparent_file.h"
22
using namespace drizzled;
24
20
Transparent_file::Transparent_file() : lower_bound(0), buff_size(IO_SIZE)
26
buff= static_cast<unsigned char *>(malloc(buff_size*sizeof(unsigned char)));
22
buff= (unsigned char *) my_malloc(buff_size*sizeof(unsigned char), MYF(MY_WME));
29
25
Transparent_file::~Transparent_file()
27
free((unsigned char*)buff);
34
void Transparent_file::init_buff(int filedes_arg)
30
void Transparent_file::init_buff(File filedes_arg)
36
32
filedes= filedes_arg;
37
33
/* read the beginning of the file */
39
lseek(filedes, 0, SEEK_SET);
35
my_seek(filedes, 0, MY_SEEK_SET, MYF(0));
40
36
if (filedes && buff)
41
upper_bound= internal::my_read(filedes, buff, buff_size, MYF(0));
37
upper_bound= my_read(filedes, buff, buff_size, MYF(0));
44
40
unsigned char *Transparent_file::ptr()
49
45
off_t Transparent_file::start()
54
50
off_t Transparent_file::end()
59
55
off_t Transparent_file::read_next()
64
60
No need to seek here, as the file managed by Transparent_file class
65
61
always points to upper_bound byte
67
if ((bytes_read= internal::my_read(filedes, buff, buff_size, MYF(0))) == MY_FILE_ERROR)
63
if ((bytes_read= my_read(filedes, buff, buff_size, MYF(0))) == MY_FILE_ERROR)
86
82
if ((lower_bound <= offset) && (offset < upper_bound))
87
83
return buff[offset - lower_bound];
89
lseek(filedes, offset, SEEK_SET);
85
my_seek(filedes, offset, MY_SEEK_SET, MYF(0));
90
86
/* read appropriate portion of the file */
91
if ((bytes_read= internal::my_read(filedes, buff, buff_size,
87
if ((bytes_read= my_read(filedes, buff, buff_size,
92
88
MYF(0))) == MY_FILE_ERROR)