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

Side by Side Diff: Source/core/dom/DOMArrayBuffer.h

Issue 1179373004: Add DOMSharedArrayBuffer type (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: merge master Created 5 years, 5 months 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
« no previous file with comments | « Source/core/core.gypi ('k') | Source/core/dom/DOMArrayBuffer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 DOMArrayBuffer_h 5 #ifndef DOMArrayBuffer_h
6 #define DOMArrayBuffer_h 6 #define DOMArrayBuffer_h
7 7
8 #include "bindings/core/v8/ScriptWrappable.h"
9 #include "core/CoreExport.h" 8 #include "core/CoreExport.h"
9 #include "core/dom/DOMArrayBufferBase.h"
10 #include "wtf/ArrayBuffer.h" 10 #include "wtf/ArrayBuffer.h"
11 #include "wtf/RefCounted.h"
12 11
13 namespace blink { 12 namespace blink {
14 13
15 class CORE_EXPORT DOMArrayBuffer final : public RefCounted<DOMArrayBuffer>, publ ic ScriptWrappable { 14 class CORE_EXPORT DOMArrayBuffer final : public DOMArrayBufferBase {
16 DEFINE_WRAPPERTYPEINFO(); 15 DEFINE_WRAPPERTYPEINFO();
17 public: 16 public:
18 static PassRefPtr<DOMArrayBuffer> create(PassRefPtr<WTF::ArrayBuffer> buffer ) 17 static PassRefPtr<DOMArrayBuffer> create(PassRefPtr<WTF::ArrayBuffer> buffer )
19 { 18 {
20 return adoptRef(new DOMArrayBuffer(buffer)); 19 return adoptRef(new DOMArrayBuffer(buffer));
21 } 20 }
22 static PassRefPtr<DOMArrayBuffer> create(unsigned numElements, unsigned elem entByteSize) 21 static PassRefPtr<DOMArrayBuffer> create(unsigned numElements, unsigned elem entByteSize)
23 { 22 {
24 return create(WTF::ArrayBuffer::create(numElements, elementByteSize)); 23 return create(WTF::ArrayBuffer::create(numElements, elementByteSize));
25 } 24 }
26 static PassRefPtr<DOMArrayBuffer> create(const void* source, unsigned byteLe ngth) 25 static PassRefPtr<DOMArrayBuffer> create(const void* source, unsigned byteLe ngth)
27 { 26 {
28 return create(WTF::ArrayBuffer::create(source, byteLength)); 27 return create(WTF::ArrayBuffer::create(source, byteLength));
29 } 28 }
30 static PassRefPtr<DOMArrayBuffer> create(WTF::ArrayBufferContents& contents) 29 static PassRefPtr<DOMArrayBuffer> create(WTF::ArrayBufferContents& contents)
31 { 30 {
32 return create(WTF::ArrayBuffer::create(contents)); 31 return create(WTF::ArrayBuffer::create(contents));
33 } 32 }
34 33
35 // Only for use by XMLHttpRequest::responseArrayBuffer and 34 // Only for use by XMLHttpRequest::responseArrayBuffer and
36 // Internals::serializeObject. 35 // Internals::serializeObject.
37 static PassRefPtr<DOMArrayBuffer> createUninitialized(unsigned numElements, unsigned elementByteSize) 36 static PassRefPtr<DOMArrayBuffer> createUninitialized(unsigned numElements, unsigned elementByteSize)
38 { 37 {
39 return create(WTF::ArrayBuffer::createUninitialized(numElements, element ByteSize)); 38 return create(WTF::ArrayBuffer::createUninitialized(numElements, element ByteSize));
40 } 39 }
41 40
42 const WTF::ArrayBuffer* buffer() const { return m_buffer.get(); }
43 WTF::ArrayBuffer* buffer() { return m_buffer.get(); }
44
45 const void* data() const { return buffer()->data(); }
46 void* data() { return buffer()->data(); }
47 unsigned byteLength() const { return buffer()->byteLength(); }
48 PassRefPtr<DOMArrayBuffer> slice(int begin, int end) const 41 PassRefPtr<DOMArrayBuffer> slice(int begin, int end) const
49 { 42 {
50 return create(buffer()->slice(begin, end)); 43 return create(buffer()->slice(begin, end));
51 } 44 }
52 PassRefPtr<DOMArrayBuffer> slice(int begin) const 45 PassRefPtr<DOMArrayBuffer> slice(int begin) const
53 { 46 {
54 return create(buffer()->slice(begin)); 47 return create(buffer()->slice(begin));
55 } 48 }
56 bool transfer(WTF::ArrayBufferContents& result) { return buffer()->transfer( result); } 49 bool transfer(WTF::ArrayBufferContents& result) { return buffer()->transfer( result); }
57 bool isNeutered() { return buffer()->isNeutered(); } 50 bool isNeutered() { return buffer()->isNeutered(); }
58 51
59 virtual v8::Local<v8::Object> wrap(v8::Isolate*, v8::Local<v8::Object> creat ionContext) override; 52 virtual v8::Local<v8::Object> wrap(v8::Isolate*, v8::Local<v8::Object> creat ionContext) override;
60 virtual v8::Local<v8::Object> associateWithWrapper(v8::Isolate*, const Wrapp erTypeInfo*, v8::Local<v8::Object> wrapper) override; 53 virtual v8::Local<v8::Object> associateWithWrapper(v8::Isolate*, const Wrapp erTypeInfo*, v8::Local<v8::Object> wrapper) override;
61 54
62 private: 55 private:
63 explicit DOMArrayBuffer(PassRefPtr<WTF::ArrayBuffer> buffer) 56 explicit DOMArrayBuffer(PassRefPtr<WTF::ArrayBuffer> buffer)
64 : m_buffer(buffer) 57 : DOMArrayBufferBase(buffer)
65 { 58 {
66 ASSERT(m_buffer);
67 } 59 }
68
69 RefPtr<WTF::ArrayBuffer> m_buffer;
70 }; 60 };
71 61
72 } // namespace blink 62 } // namespace blink
73 63
74 #endif // DOMArrayBuffer_h 64 #endif // DOMArrayBuffer_h
OLDNEW
« no previous file with comments | « Source/core/core.gypi ('k') | Source/core/dom/DOMArrayBuffer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698