Chromium Code Reviews| Index: Source/modules/mediasource/TrackDefaultList.h |
| diff --git a/Source/modules/mediasource/TrackDefaultList.h b/Source/modules/mediasource/TrackDefaultList.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..fe2d636a534c3f2225213cf878476b879c549ed4 |
| --- /dev/null |
| +++ b/Source/modules/mediasource/TrackDefaultList.h |
| @@ -0,0 +1,48 @@ |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef TrackDefaultList_h |
| +#define TrackDefaultList_h |
| + |
| +#include "bindings/core/v8/ScriptWrappable.h" |
| +#include "modules/mediasource/TrackDefault.h" |
| +#include "platform/heap/Handle.h" |
| +#include "wtf/text/AtomicStringHash.h" |
| +#include "wtf/text/StringHash.h" |
| + |
| +namespace blink { |
| + |
| +class ExceptionState; |
| + |
| +class TrackDefaultList final : public GarbageCollectedFinalized<TrackDefaultList>, public ScriptWrappable { |
|
sof
2014/12/03 19:15:40
This can be a non-finalized class; have it derive
wolenetz
2014/12/11 23:52:39
Done.
|
| + DEFINE_WRAPPERTYPEINFO(); |
| +public: |
| + static TrackDefaultList* create(const HeapVector<Member<TrackDefault>>& trackDefaults, ExceptionState& exceptionState) |
| + { |
| + return new TrackDefaultList(trackDefaults, exceptionState); |
| + } |
| + |
| + virtual ~TrackDefaultList() { } |
| + |
| + // Implement the IDL |
| + unsigned length() const { return m_trackDefaults.size(); } |
| + TrackDefault* item(unsigned) const; |
| + |
| + void trace(Visitor*); |
| + |
| +private: |
| + TrackDefaultList(const HeapVector<Member<TrackDefault>>&, ExceptionState&); |
| + |
| + HeapVector<Member<TrackDefault>> m_trackDefaults; |
| + |
| + // HashMapped index of |m_trackDefaults| for lookup by unique <type, |
| + // byteStreamTrackID>. |
| + typedef std::pair<AtomicString, String> TypeAndID; |
| + typedef HeapHashMap<TypeAndID, Member<TrackDefault>> TypeAndIDToTrackDefaultMap; |
| + TypeAndIDToTrackDefaultMap m_typeAndIDToTrackDefaultMap; |
| +}; |
| + |
| +} // namespace blink |
| + |
| +#endif // TrackDefaultList_h |