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