Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1341)

Side by Side Diff: mojo/edk/embedder/simple_platform_shared_buffer.h

Issue 1483823004: EDK: Move {platform_handle,scoped_platform_handle}.* to //mojo/edk/platform. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef MOJO_EDK_EMBEDDER_SIMPLE_PLATFORM_SHARED_BUFFER_H_ 5 #ifndef MOJO_EDK_EMBEDDER_SIMPLE_PLATFORM_SHARED_BUFFER_H_
6 #define MOJO_EDK_EMBEDDER_SIMPLE_PLATFORM_SHARED_BUFFER_H_ 6 #define MOJO_EDK_EMBEDDER_SIMPLE_PLATFORM_SHARED_BUFFER_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include "mojo/edk/embedder/platform_shared_buffer.h" 10 #include "mojo/edk/embedder/platform_shared_buffer.h"
11 #include "mojo/edk/util/ref_ptr.h" 11 #include "mojo/edk/util/ref_ptr.h"
12 #include "mojo/public/cpp/system/macros.h" 12 #include "mojo/public/cpp/system/macros.h"
13 13
14 namespace mojo { 14 namespace mojo {
15 namespace embedder { 15 namespace embedder {
16 16
17 // A simple implementation of |PlatformSharedBuffer|. 17 // A simple implementation of |PlatformSharedBuffer|.
18 class SimplePlatformSharedBuffer final : public PlatformSharedBuffer { 18 class SimplePlatformSharedBuffer final : public PlatformSharedBuffer {
19 public: 19 public:
20 // Creates a shared buffer of size |num_bytes| bytes (initially zero-filled). 20 // Creates a shared buffer of size |num_bytes| bytes (initially zero-filled).
21 // |num_bytes| must be nonzero. Returns null on failure. 21 // |num_bytes| must be nonzero. Returns null on failure.
22 static util::RefPtr<SimplePlatformSharedBuffer> Create(size_t num_bytes); 22 static util::RefPtr<SimplePlatformSharedBuffer> Create(size_t num_bytes);
23 23
24 static util::RefPtr<SimplePlatformSharedBuffer> CreateFromPlatformHandle( 24 static util::RefPtr<SimplePlatformSharedBuffer> CreateFromPlatformHandle(
25 size_t num_bytes, 25 size_t num_bytes,
26 ScopedPlatformHandle platform_handle); 26 platform::ScopedPlatformHandle platform_handle);
27 27
28 // |PlatformSharedBuffer| implementation: 28 // |PlatformSharedBuffer| implementation:
29 size_t GetNumBytes() const override; 29 size_t GetNumBytes() const override;
30 std::unique_ptr<PlatformSharedBufferMapping> Map(size_t offset, 30 std::unique_ptr<PlatformSharedBufferMapping> Map(size_t offset,
31 size_t length) override; 31 size_t length) override;
32 bool IsValidMap(size_t offset, size_t length) override; 32 bool IsValidMap(size_t offset, size_t length) override;
33 std::unique_ptr<PlatformSharedBufferMapping> MapNoCheck( 33 std::unique_ptr<PlatformSharedBufferMapping> MapNoCheck(
34 size_t offset, 34 size_t offset,
35 size_t length) override; 35 size_t length) override;
36 ScopedPlatformHandle DuplicatePlatformHandle() override; 36 platform::ScopedPlatformHandle DuplicatePlatformHandle() override;
37 ScopedPlatformHandle PassPlatformHandle() override; 37 platform::ScopedPlatformHandle PassPlatformHandle() override;
38 38
39 private: 39 private:
40 explicit SimplePlatformSharedBuffer(size_t num_bytes); 40 explicit SimplePlatformSharedBuffer(size_t num_bytes);
41 ~SimplePlatformSharedBuffer() override; 41 ~SimplePlatformSharedBuffer() override;
42 42
43 // This is called by |Create()| before this object is given to anyone. 43 // This is called by |Create()| before this object is given to anyone.
44 bool Init(); 44 bool Init();
45 45
46 // This is like |Init()|, but for |CreateFromPlatformHandle()|. (Note: It 46 // This is like |Init()|, but for |CreateFromPlatformHandle()|. (Note: It
47 // should verify that |platform_handle| is an appropriate handle for the 47 // should verify that |platform_handle| is an appropriate handle for the
48 // claimed |num_bytes_|.) 48 // claimed |num_bytes_|.)
49 bool InitFromPlatformHandle(ScopedPlatformHandle platform_handle); 49 bool InitFromPlatformHandle(platform::ScopedPlatformHandle platform_handle);
50 50
51 const size_t num_bytes_; 51 const size_t num_bytes_;
52 52
53 // This is set in |Init()|/|InitFromPlatformHandle()| and never modified 53 // This is set in |Init()|/|InitFromPlatformHandle()| and never modified
54 // (except by |PassPlatformHandle()|; see the comments above its declaration), 54 // (except by |PassPlatformHandle()|; see the comments above its declaration),
55 // hence does not need to be protected by a lock. 55 // hence does not need to be protected by a lock.
56 ScopedPlatformHandle handle_; 56 platform::ScopedPlatformHandle handle_;
57 57
58 MOJO_DISALLOW_COPY_AND_ASSIGN(SimplePlatformSharedBuffer); 58 MOJO_DISALLOW_COPY_AND_ASSIGN(SimplePlatformSharedBuffer);
59 }; 59 };
60 60
61 // An implementation of |PlatformSharedBufferMapping|, produced by 61 // An implementation of |PlatformSharedBufferMapping|, produced by
62 // |SimplePlatformSharedBuffer|. 62 // |SimplePlatformSharedBuffer|.
63 class SimplePlatformSharedBufferMapping final 63 class SimplePlatformSharedBufferMapping final
64 : public PlatformSharedBufferMapping { 64 : public PlatformSharedBufferMapping {
65 public: 65 public:
66 ~SimplePlatformSharedBufferMapping() override; 66 ~SimplePlatformSharedBufferMapping() override;
(...skipping 20 matching lines...) Expand all
87 void* const real_base_; 87 void* const real_base_;
88 const size_t real_length_; 88 const size_t real_length_;
89 89
90 MOJO_DISALLOW_COPY_AND_ASSIGN(SimplePlatformSharedBufferMapping); 90 MOJO_DISALLOW_COPY_AND_ASSIGN(SimplePlatformSharedBufferMapping);
91 }; 91 };
92 92
93 } // namespace embedder 93 } // namespace embedder
94 } // namespace mojo 94 } // namespace mojo
95 95
96 #endif // MOJO_EDK_EMBEDDER_SIMPLE_PLATFORM_SHARED_BUFFER_H_ 96 #endif // MOJO_EDK_EMBEDDER_SIMPLE_PLATFORM_SHARED_BUFFER_H_
OLDNEW
« no previous file with comments | « mojo/edk/embedder/scoped_platform_handle.h ('k') | mojo/edk/embedder/simple_platform_shared_buffer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698