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

Side by Side Diff: Source/core/streams/ReadableStream.h

Issue 407453002: ReadableStream initial implementation (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 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
OLDNEW
(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 ReadableStream_h
6 #define ReadableStream_h
7
8 #include "bindings/core/v8/ScriptPromise.h"
9 #include "bindings/core/v8/ScriptState.h"
10 #include "bindings/core/v8/ScriptValue.h"
11 #include "bindings/core/v8/V8Binding.h"
12 #include "platform/heap/Handle.h"
13 #include "wtf/RefPtr.h"
14
15 namespace WebCore {
16
17 class ExceptionState;
18 class UnderlyingSource;
19
20 class ReadableStream FINAL : public GarbageCollectedFinalized<ReadableStream> {
21 public:
22 enum State {
23 Readable,
24 Waiting,
25 Closed,
26 Errored,
27 };
28
29 // FIXME: Define Strategy here.
30 // FIXME: Add |strategy| constructor parameter.
31 ReadableStream(ScriptState*, UnderlyingSource*, ExceptionState*);
32 virtual ~ReadableStream();
33
34 template <typename T>
35 bool enqueue(const T& chunk)
36 {
37 ScriptState::Scope(m_scriptState.get());
38 return enqueueInternal(ScriptValue(m_scriptState.get(), V8ValueTraits<T> ::toV8Value(chunk)));
39 }
40
41 bool isStarted() const { return m_isStarted; }
42 bool isDraining() const { return m_isDraining; }
43 bool isPulling() const { return m_isPulling; }
44 State state() const { return m_state; }
45
46 // FIXME: Implement these APIs.
47 // bool read();
48 // ScriptPromise wait();
49 // void close();
50
51 void error(ScriptValue error);
52
53 void trace(Visitor*);
54
55 private:
56 class OnStarted;
57 class OnStartFailed;
58
59 void onStarted(void);
60 bool enqueueInternal(ScriptValue chunk);
61
62 RefPtr<ScriptState> m_scriptState;
63 Member<UnderlyingSource> m_source;
64 bool m_isStarted;
65 bool m_isDraining;
66 bool m_isPulling;
67 State m_state;
68 };
69
70 } // namespace WebCore
71
72 #endif // #ifndef ReadableStream_h
tyoshino (SeeGerritForStatus) 2014/07/18 04:31:40 uncommon in blink just as follows? // ReadableStr
yhirano 2014/07/18 04:38:54 Done.
73
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698