Home | History | Annotate | Download | only in nacl_io
      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