1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef LIBRARIES_NACL_IO_HTML5FS_HTML5_FS_NODE_H_
6 #define LIBRARIES_NACL_IO_HTML5FS_HTML5_FS_NODE_H_
8 #include <ppapi/c/pp_resource.h>
9 #include "nacl_io/node.h"
15 class Html5FsNode : public Node {
17 // Normal OS operations on a node (file), can be called by the kernel
18 // directly so it must lock and unlock appropriately. These functions
19 // must not be called by the filesystem.
20 virtual Error FSync();
21 virtual Error GetDents(size_t offs,
25 virtual Error GetStat(struct stat* stat);
26 virtual Error Read(const HandleAttr& attr,
30 virtual Error FTruncate(off_t size);
31 virtual Error Write(const HandleAttr& attr,
36 virtual int GetType();
37 virtual Error GetSize(off_t* out_size);
38 virtual bool IsaDir();
39 virtual bool IsaFile();
42 Html5FsNode(Filesystem* filesystem, PP_Resource fileref);
44 // Init with standard open flags
45 virtual Error Init(int open_flags);
46 virtual void Destroy();
49 PP_Resource fileref_resource_;
50 PP_Resource fileio_resource_; // 0 if the file is a directory.
55 } // namespace nacl_io
57 #endif // LIBRARIES_NACL_IO_HTML5FS_HTML5_FS_NODE_H_