1//----------------------------------------------------------------------
2//  This software is part of the OpenBeOS distribution and is covered
3//  by the OpenBeOS license.
4//
5//  Copyright (c) 2003 Tyler Dauwalder, tyler@dauwalder.net
6//----------------------------------------------------------------------
7
8/*! \file DataStream.h
9*/
10
11#ifndef _DATA_STREAM_H
12#define _DATA_STREAM_H
13
14#include <DataIO.h>
15
16class DataStream : public BPositionIO {
17public:
18	virtual status_t InitCheck() const = 0;
19
20	virtual ssize_t Read(void *buffer, size_t size) = 0;
21	virtual	ssize_t ReadAt(off_t pos, void *buffer, size_t size) = 0;
22
23	virtual ssize_t Write(const void *buffer, size_t size) = 0;
24	virtual ssize_t WriteAt(off_t pos, const void *buffer, size_t size) = 0;
25
26	virtual ssize_t Write(BDataIO &data, size_t size) = 0;
27	virtual ssize_t	WriteAt(off_t pos, BDataIO &data, size_t size) = 0;
28
29	virtual ssize_t Zero(size_t size) = 0;
30	virtual ssize_t	ZeroAt(off_t pos, size_t size) = 0;
31
32	virtual off_t Seek(off_t position, uint32 seek_mode) = 0;
33	virtual off_t Position() const = 0;
34
35	virtual status_t SetSize(off_t size) = 0;
36};
37
38#endif	// _DATA_STREAM_H
39