| // Copyright 2013 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. |
| |
| #ifndef LIBRARIES_NACL_IO_TYPED_FS_FACTORY_H_ |
| #define LIBRARIES_NACL_IO_TYPED_FS_FACTORY_H_ |
| |
| #include "nacl_io/fs_factory.h" |
| |
| namespace nacl_io { |
| |
| template <typename T> |
| class TypedFsFactory : public FsFactory { |
| public: |
| virtual Error CreateFilesystem(const FsInitArgs& args, |
| ScopedFilesystem* out_fs) { |
| sdk_util::ScopedRef<T> fs(new T()); |
| Error error = fs->Init(args); |
| if (error) |
| return error; |
| |
| *out_fs = fs; |
| return 0; |
| } |
| }; |
| |
| } // namespace nacl_io |
| |
| #endif // LIBRARIES_NACL_IO_TYPED_FS_FACTORY_H_ |