OLD | NEW |
(Empty) | |
| 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 DOMArrayBufferView_h |
| 6 #define DOMArrayBufferView_h |
| 7 |
| 8 #include "bindings/core/v8/ScriptWrappable.h" |
| 9 #include "core/dom/DOMArrayBuffer.h" |
| 10 #include "wtf/ArrayBufferView.h" |
| 11 #include "wtf/RefCounted.h" |
| 12 |
| 13 namespace blink { |
| 14 |
| 15 class DOMArrayBufferView : public RefCounted<DOMArrayBufferView>, public ScriptW
rappable { |
| 16 DEFINE_WRAPPERTYPEINFO(); |
| 17 public: |
| 18 PassRefPtr<DOMArrayBuffer> buffer() const |
| 19 { |
| 20 if (!m_domArrayBuffer) |
| 21 m_domArrayBuffer = DOMArrayBuffer::create(view()->buffer()); |
| 22 return m_domArrayBuffer; |
| 23 } |
| 24 |
| 25 const WTF::ArrayBufferView* view() const { return m_bufferView.get(); } |
| 26 WTF::ArrayBufferView* view() { return m_bufferView.get(); } |
| 27 |
| 28 WTF::ArrayBufferView::ViewType type() const { return view()->type(); } |
| 29 void* baseAddress() const { return view()->baseAddress(); } |
| 30 unsigned long byteOffset() const { return view()->byteOffset(); } |
| 31 unsigned long byteLength() const { return view()->byteLength(); } |
| 32 |
| 33 virtual v8::Handle<v8::Object> wrap(v8::Handle<v8::Object> creationContext,
v8::Isolate*) override |
| 34 { |
| 35 ASSERT_NOT_REACHED(); |
| 36 return v8::Handle<v8::Object>(); |
| 37 } |
| 38 virtual v8::Handle<v8::Object> associateWithWrapper(const WrapperTypeInfo*,
v8::Handle<v8::Object> wrapper, v8::Isolate*) override |
| 39 { |
| 40 ASSERT_NOT_REACHED(); |
| 41 return v8::Handle<v8::Object>(); |
| 42 } |
| 43 |
| 44 protected: |
| 45 explicit DOMArrayBufferView(PassRefPtr<WTF::ArrayBufferView> bufferView) |
| 46 : m_bufferView(bufferView) |
| 47 { |
| 48 ASSERT(m_bufferView); |
| 49 } |
| 50 DOMArrayBufferView(PassRefPtr<WTF::ArrayBufferView> bufferView, PassRefPtr<D
OMArrayBuffer> domArrayBuffer) |
| 51 : m_bufferView(bufferView), m_domArrayBuffer(domArrayBuffer) |
| 52 { |
| 53 ASSERT(m_bufferView); |
| 54 ASSERT(m_domArrayBuffer); |
| 55 ASSERT(m_domArrayBuffer->buffer() == m_bufferView->buffer()); |
| 56 } |
| 57 |
| 58 private: |
| 59 RefPtr<WTF::ArrayBufferView> m_bufferView; |
| 60 mutable RefPtr<DOMArrayBuffer> m_domArrayBuffer; |
| 61 }; |
| 62 |
| 63 } // namespace blink |
| 64 |
| 65 #endif // DOMArrayBufferView_h |
OLD | NEW |