- add sources.
[platform/framework/web/crosswalk.git] / src / native_client_sdk / src / libraries / nacl_io / typed_mount_factory.h
1 // Copyright (c) 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_MOUNT_FACTORY_H_
6 #define LIBRARIES_NACL_IO_TYPED_MOUNT_FACTORY_H_
7
8 #include "nacl_io/mount.h"
9 #include "nacl_io/mount_factory.h"
10
11 namespace nacl_io {
12
13 template <typename T>
14 class TypedMountFactory : public MountFactory {
15  public:
16   virtual Error CreateMount(int dev,
17                             StringMap_t& args,
18                             PepperInterface* ppapi,
19                             ScopedMount* out_mount) {
20     sdk_util::ScopedRef<T> mnt(new T());
21     Error error = mnt->Init(dev, args, ppapi);
22     if (error)
23       return error;
24
25     *out_mount = mnt;
26     return 0;
27   }
28 };
29
30 }  // namespace nacl_io
31
32 #endif  // LIBRARIES_NACL_IO_TYPED_MOUNT_FACTORY_H_