#ifndef LIBRARIES_NACL_IO_PASSTHROUGHFS_PASSTHROUGH_FS_H_
#define LIBRARIES_NACL_IO_PASSTHROUGHFS_PASSTHROUGH_FS_H_
#include "nacl_io/filesystem.h"
#include "nacl_io/typed_fs_factory.h"
namespace nacl_io {
class PassthroughFs : public Filesystem {
 protected:
  PassthroughFs();
  virtual Error Init(const FsInitArgs& args);
  virtual void Destroy();
 public:
  virtual Error Access(const Path& path, int a_mode);
  virtual Error Open(const Path& path, int mode, ScopedNode* out_node);
  virtual Error OpenResource(const Path& path, ScopedNode* out_node);
  virtual Error Unlink(const Path& path);
  virtual Error Mkdir(const Path& path, int perm);
  virtual Error Rmdir(const Path& path);
  virtual Error Remove(const Path& path);
  virtual Error Rename(const Path& path, const Path& newpath);
 private:
  friend class TypedFsFactory<PassthroughFs>;
  DISALLOW_COPY_AND_ASSIGN(PassthroughFs);
};
}  
#endif