1// Copyright 2014 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 MOJO_EMBEDDER_PLATFORM_SUPPORT_H_
6#define MOJO_EMBEDDER_PLATFORM_SUPPORT_H_
7
8#include <stddef.h>
9
10#include "base/macros.h"
11#include "mojo/embedder/scoped_platform_handle.h"
12#include "mojo/system/system_impl_export.h"
13
14namespace mojo {
15namespace embedder {
16
17class PlatformSharedBuffer;
18
19// This class is provided by the embedder to implement (typically
20// platform-dependent) things needed by the Mojo system implementation.
21class MOJO_SYSTEM_IMPL_EXPORT PlatformSupport {
22 public:
23  virtual ~PlatformSupport() {}
24
25  virtual PlatformSharedBuffer* CreateSharedBuffer(size_t num_bytes) = 0;
26  virtual PlatformSharedBuffer* CreateSharedBufferFromHandle(
27      size_t num_bytes,
28      ScopedPlatformHandle platform_handle) = 0;
29
30 protected:
31  PlatformSupport() {}
32
33 private:
34  DISALLOW_COPY_AND_ASSIGN(PlatformSupport);
35};
36
37}  // namespace embedder
38}  // namespace mojo
39
40#endif  // MOJO_EMBEDDER_PLATFORM_SUPPORT_H_
41