#ifndef H_KINO_FSFILEDES
#define H_KINO_FSFILEDES 1
#include <stdio.h>
#include "KinoSearch/Store/FileDes.r"
typedef struct kino_FSFileDes kino_FSFileDes;
typedef struct KINO_FSFILEDES_VTABLE KINO_FSFILEDES_VTABLE;
KINO_CLASS("KinoSearch::Store::FSFileDes", "FSFileDes",
"KinoSearch::Store::FileDes");
struct kino_FSFileDes {
KINO_FSFILEDES_VTABLE *_;
KINO_FILEDES_MEMBER_VARS;
FILE *fhandle;
};
/* Constructor. Will return NULL if attempt to open the file fails.
*/
kino_FSFileDes*
kino_FSFileDes_new(const char *path, int oflags, int fdmode,
const char *fmode);
void
kino_FSFileDes_destroy(kino_FSFileDes *self);
KINO_METHOD("Kino_FSFileDes_Destroy");
chy_bool_t
kino_FSFileDes_fdseek(kino_FSFileDes *self, chy_u64_t target);
KINO_METHOD("Kino_FSFileDes_FDSeek");
chy_bool_t
kino_FSFileDes_fdread(kino_FSFileDes *self, char *dest,
chy_u32_t dest_offset, chy_u32_t len);
KINO_METHOD("Kino_FSFileDes_FDRead");
chy_bool_t
kino_FSFileDes_fdwrite(kino_FSFileDes *self, const char* buf, chy_u32_t len);
KINO_METHOD("Kino_FSFileDes_FDWrite");
chy_u64_t
kino_FSFileDes_fdlength(kino_FSFileDes *self);
KINO_METHOD("Kino_FSFileDes_FDLength");
chy_bool_t
kino_FSFileDes_fdclose(kino_FSFileDes *self);
KINO_METHOD("Kino_FSFileDes_FDClose");
KINO_END_CLASS
#endif /* H_KINO_FSFILEDES */
/* Copyright 2006-2007 Marvin Humphrey
*
* This program is free software; you can redistribute it and/or modify
* under the same terms as Perl itself.
*/