| Index: mojo/services/files/public/c/lib/directory_wrapper.cc
|
| diff --git a/mojo/services/files/public/c/lib/directory_wrapper.cc b/mojo/services/files/public/c/lib/directory_wrapper.cc
|
| deleted file mode 100644
|
| index 986df54cc66a98885c50b1d8ee34252cccffd78e..0000000000000000000000000000000000000000
|
| --- a/mojo/services/files/public/c/lib/directory_wrapper.cc
|
| +++ /dev/null
|
| @@ -1,112 +0,0 @@
|
| -// Copyright 2015 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "files/public/c/lib/directory_wrapper.h"
|
| -
|
| -#include <errno.h>
|
| -
|
| -#include "files/public/c/lib/errno_impl.h"
|
| -#include "files/public/c/lib/file_fd_impl.h"
|
| -#include "files/public/c/lib/template_util.h"
|
| -#include "files/public/c/lib/util.h"
|
| -#include "files/public/c/mojio_fcntl.h"
|
| -#include "files/public/interfaces/file.mojom.h"
|
| -#include "files/public/interfaces/types.mojom.h"
|
| -#include "mojo/public/cpp/bindings/interface_request.h"
|
| -#include "mojo/public/cpp/environment/logging.h"
|
| -
|
| -namespace mojio {
|
| -
|
| -DirectoryWrapper::DirectoryWrapper(ErrnoImpl* errno_impl,
|
| - mojo::files::DirectoryPtr directory)
|
| - : errno_impl_(errno_impl), directory_(directory.Pass()) {
|
| - MOJO_DCHECK(directory_);
|
| -}
|
| -
|
| -DirectoryWrapper::~DirectoryWrapper() {
|
| -}
|
| -
|
| -// TODO(vtl): This doesn't currently support opening non-files (in particular,
|
| -// directories), but it should.
|
| -std::unique_ptr<FDImpl> DirectoryWrapper::Open(const char* path,
|
| - int oflag,
|
| - mojio_mode_t mode) {
|
| - ErrnoImpl::Setter errno_setter(errno_impl_);
|
| -
|
| - if (!path) {
|
| - errno_setter.Set(EFAULT);
|
| - return nullptr;
|
| - }
|
| -
|
| - uint32_t mojo_open_flags = 0;
|
| - switch (oflag & MOJIO_O_ACCMODE) {
|
| - case MOJIO_O_RDONLY:
|
| - mojo_open_flags = mojo::files::kOpenFlagRead;
|
| - break;
|
| - case MOJIO_O_RDWR:
|
| - mojo_open_flags =
|
| - mojo::files::kOpenFlagRead | mojo::files::kOpenFlagWrite;
|
| - break;
|
| - case MOJIO_O_WRONLY:
|
| - mojo_open_flags = mojo::files::kOpenFlagWrite;
|
| - break;
|
| - default:
|
| - errno_setter.Set(EINVAL);
|
| - return nullptr;
|
| - }
|
| -
|
| - if ((oflag & MOJIO_O_CREAT))
|
| - mojo_open_flags |= mojo::files::kOpenFlagCreate;
|
| - if ((oflag & MOJIO_O_EXCL))
|
| - mojo_open_flags |= mojo::files::kOpenFlagExclusive;
|
| - if ((oflag & MOJIO_O_TRUNC))
|
| - mojo_open_flags |= mojo::files::kOpenFlagTruncate;
|
| - if ((oflag & MOJIO_O_APPEND))
|
| - mojo_open_flags |= mojo::files::kOpenFlagAppend;
|
| - // TODO(vtl): What should we do we open flags we don't support? And invalid
|
| - // flags?
|
| -
|
| - // TODO(vtl): We currently totally ignore |mode|; maybe we should do something
|
| - // with it?
|
| -
|
| - mojo::files::FilePtr file;
|
| - mojo::files::Error error = mojo::files::Error::INTERNAL;
|
| - directory_->OpenFile(path, mojo::GetProxy(&file), mojo_open_flags,
|
| - Capture(&error));
|
| - if (!directory_.WaitForIncomingResponse()) {
|
| - // This may be somewhat surprising. The implication is that the CWD is
|
| - // stale, which may be a little strange.
|
| - errno_setter.Set(ESTALE);
|
| - return nullptr;
|
| - }
|
| - if (!errno_setter.Set(ErrorToErrno(error)))
|
| - return nullptr;
|
| - // C++11, why don't you have make_unique?
|
| - return std::unique_ptr<FDImpl>(new FileFDImpl(errno_impl_, file.Pass()));
|
| -}
|
| -
|
| -bool DirectoryWrapper::Chdir(const char* path) {
|
| - ErrnoImpl::Setter errno_setter(errno_impl_);
|
| -
|
| - if (!path)
|
| - return errno_setter.Set(EFAULT);
|
| -
|
| - mojo::files::DirectoryPtr new_directory;
|
| - mojo::files::Error error = mojo::files::Error::INTERNAL;
|
| - directory_->OpenDirectory(
|
| - path, mojo::GetProxy(&new_directory),
|
| - mojo::files::kOpenFlagRead | mojo::files::kOpenFlagWrite,
|
| - Capture(&error));
|
| - if (!directory_.WaitForIncomingResponse()) {
|
| - // This may be somewhat surprising. The implication is that the CWD is
|
| - // stale, which may be a little strange.
|
| - return errno_setter.Set(ESTALE);
|
| - }
|
| - if (!errno_setter.Set(ErrorToErrno(error)))
|
| - return false;
|
| - directory_ = new_directory.Pass();
|
| - return true;
|
| -}
|
| -
|
| -} // namespace mojio
|
|
|