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. 4 5 #ifndef LIBRARIES_NACL_IO_TYPED_FS_FACTORY_H_ 6 #define LIBRARIES_NACL_IO_TYPED_FS_FACTORY_H_ 7 8 #include "nacl_io/fs_factory.h" 9 10 namespace nacl_io { 11 12 template <typename T> 13 class TypedFsFactory : public FsFactory { 14 public: 15 virtual Error CreateFilesystem(const FsInitArgs& args, 16 ScopedFilesystem* out_fs) { 17 sdk_util::ScopedRef<T> fs(new T()); 18 Error error = fs->Init(args); 19 if (error) 20 return error; 21 22 *out_fs = fs; 23 return 0; 24 } 25 }; 26 27 } // namespace nacl_io 28 29 #endif // LIBRARIES_NACL_IO_TYPED_FS_FACTORY_H_ 30