18 #ifndef __BGZFFILETYPE_H__ 19 #define __BGZFFILETYPE_H__ 21 #ifdef __ZLIB_AVAILABLE__ 36 virtual ~BgzfFileType()
41 BgzfFileType(
const char * filename,
const char * mode);
43 virtual bool operator == (
void * rhs)
49 return (bgzfHandle == rhs);
52 virtual bool operator != (
void * rhs)
58 return (bgzfHandle != rhs);
62 virtual inline int close()
64 int result = bgzf_close(bgzfHandle);
71 virtual inline void rewind()
74 seek(myStartPos, SEEK_SET);
78 virtual inline int eof()
85 virtual inline bool isOpen()
87 if (bgzfHandle != NULL)
96 virtual inline unsigned int write(
const void * buffer,
unsigned int size)
98 return bgzf_write(bgzfHandle, buffer, size);
104 virtual inline int read(
void * buffer,
unsigned int size)
106 int bytesRead = bgzf_read(bgzfHandle, buffer, size);
107 if ((bytesRead == 0) && (size != 0))
111 else if((bytesRead != (
int)size) & (bytesRead >= 0))
127 virtual inline int64_t tell()
131 throw std::runtime_error(
"IFILE: CANNOT use buffered reads and tell for BGZF files");
133 return bgzf_tell(bgzfHandle);
144 virtual inline bool seek(int64_t offset,
int origin)
146 int64_t returnVal = bgzf_seek(bgzfHandle, offset, origin);
161 static void setRequireEofBlock(
bool requireEofBlock);
175 static bool ourRequireEofBlock;