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