root/src/add-ons/kernel/file_systems/ramfs/File.h
/*
 * Copyright 2007, Ingo Weinhold, ingo_weinhold@gmx.de.
 * All rights reserved. Distributed under the terms of the MIT license.
 */
#ifndef FILE_H
#define FILE_H

#include "DataContainer.h"
#include "Node.h"

class File : public Node, public DataContainer {
public:
        File(Volume *volume);
        virtual ~File();

        Volume *GetVolume() const       { return Node::GetVolume(); }

        virtual status_t ReadAt(off_t offset, void *buffer, size_t size,
                                                        size_t *bytesRead);
        virtual status_t WriteAt(off_t offset, const void *buffer, size_t size,
                                                         size_t *bytesWritten);

        virtual status_t SetSize(off_t newSize);
        virtual off_t GetSize() const;

        // debugging
        virtual void GetAllocationInfo(AllocationInfo &info);
};

#endif  // FILE_H