It is accomplished ...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
//----------------------------------------------------------------------
|
||||
// This software is part of the OpenBeOS distribution and is covered
|
||||
// by the OpenBeOS license.
|
||||
//---------------------------------------------------------------------
|
||||
/*!
|
||||
\file OffsetFile.h
|
||||
OffsetFile interface declaration.
|
||||
*/
|
||||
|
||||
#ifndef _sk_offset_file_h_
|
||||
#define _sk_offset_file_h_
|
||||
|
||||
#include <DataIO.h>
|
||||
#include <File.h>
|
||||
|
||||
namespace StorageKit {
|
||||
|
||||
/*!
|
||||
\class OffsetFile
|
||||
\brief Provides access to a file skipping a certain amount of bytes at
|
||||
the beginning.
|
||||
|
||||
This class implements the BPositionIO interface to provide access to the
|
||||
data of a file past a certain offset. This is very handy e.g. for dealing
|
||||
with resources, as they always reside at the end of a file, but may start
|
||||
at arbitrary offsets.
|
||||
|
||||
\author <a href='mailto:[email protected]'>Ingo Weinhold</a>
|
||||
|
||||
\version 0.0.0
|
||||
*/
|
||||
class OffsetFile : public BPositionIO {
|
||||
public:
|
||||
OffsetFile();
|
||||
OffsetFile(BFile *file, off_t offset);
|
||||
virtual ~OffsetFile();
|
||||
|
||||
status_t SetTo(BFile *file, off_t offset);
|
||||
void Unset();
|
||||
status_t InitCheck() const;
|
||||
|
||||
BFile *File() const;
|
||||
|
||||
ssize_t ReadAt(off_t pos, void *buffer, size_t size);
|
||||
ssize_t WriteAt(off_t pos, const void *buffer,
|
||||
size_t size);
|
||||
off_t Seek(off_t position, uint32 seekMode);
|
||||
off_t Position() const;
|
||||
|
||||
status_t SetSize(off_t size);
|
||||
status_t GetSize(off_t *size);
|
||||
|
||||
off_t Offset() const;
|
||||
|
||||
private:
|
||||
BFile* fFile;
|
||||
off_t fOffset;
|
||||
off_t fCurrentPosition;
|
||||
};
|
||||
|
||||
}; // namespace StorageKit
|
||||
|
||||
#endif // _sk_offset_file_h_
|
||||
Reference in New Issue
Block a user