xref: /haiku/src/system/boot/platform/atari_m68k/Handle.h (revision eb53cd839cbf1b3c9c506e1653d1b0489f42fb48)
1*eb53cd83SFrançois Revol /*
2*eb53cd83SFrançois Revol  * Copyright 2003, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
3*eb53cd83SFrançois Revol  * Distributed under the terms of the MIT License.
4*eb53cd83SFrançois Revol  */
5*eb53cd83SFrançois Revol #ifndef HANDLE_H
6*eb53cd83SFrançois Revol #define HANDLE_H
7*eb53cd83SFrançois Revol 
8*eb53cd83SFrançois Revol 
9*eb53cd83SFrançois Revol #include <boot/vfs.h>
10*eb53cd83SFrançois Revol 
11*eb53cd83SFrançois Revol 
12*eb53cd83SFrançois Revol #ifdef __cplusplus
13*eb53cd83SFrançois Revol 
14*eb53cd83SFrançois Revol class Handle : public ConsoleNode {
15*eb53cd83SFrançois Revol 	public:
16*eb53cd83SFrançois Revol 		Handle(int handle, bool takeOwnership = true);
17*eb53cd83SFrançois Revol 		Handle();
18*eb53cd83SFrançois Revol 		virtual ~Handle();
19*eb53cd83SFrançois Revol 
20*eb53cd83SFrançois Revol 		void SetHandle(int handle, bool takeOwnership = true);
21*eb53cd83SFrançois Revol 
22*eb53cd83SFrançois Revol 		virtual ssize_t ReadAt(void *cookie, off_t pos, void *buffer, size_t bufferSize);
23*eb53cd83SFrançois Revol 		virtual ssize_t WriteAt(void *cookie, off_t pos, const void *buffer, size_t bufferSize);
24*eb53cd83SFrançois Revol 
25*eb53cd83SFrançois Revol 		virtual off_t Size() const;
26*eb53cd83SFrançois Revol 
27*eb53cd83SFrançois Revol 	protected:
28*eb53cd83SFrançois Revol 		int16		fHandle;
29*eb53cd83SFrançois Revol 		bool	fOwnHandle;
30*eb53cd83SFrançois Revol };
31*eb53cd83SFrançois Revol 
32*eb53cd83SFrançois Revol #endif	/* __cplusplus */
33*eb53cd83SFrançois Revol 
34*eb53cd83SFrançois Revol #endif	/* HANDLE_H */
35