/* * \brief TAR file-system file node * \author Christian Prochaska * \author Norman Feske * \date 2012-08-20 */ /* * Copyright (C) 2012-2013 Genode Labs GmbH * * This file is part of the Genode OS framework, which is distributed * under the terms of the GNU General Public License version 2. */ #ifndef _FILE_H_ #define _FILE_H_ /* local includes */ #include namespace File_system { class File : public Node { public: File(Record *record) : Node(record) { } size_t read(char *dst, size_t len, seek_off_t seek_offset) { bool verbose = false; if (verbose) PDBG("len = %zu, seek_offset = %llu", len, seek_offset); size_t const record_size = _record->size(); size_t const record_bytes_left = record_size >= seek_offset ? record_size - seek_offset : 0; size_t const count = min(record_bytes_left, len); char const *data = (char *)_record->data() + seek_offset; memcpy(dst, data, count); return count; } size_t write(char const *src, size_t len, seek_off_t seek_offset) { bool verbose = false; if (verbose) PDBG("len = %zu, seek_offset = %llu", len, seek_offset); return -1; } }; } #endif /* _FILE_H_ */