parser/html/nsHtml5TreeOpStage.h

branch
TOR_BUG_9701
changeset 14
925c144e1f1f
equal deleted inserted replaced
-1:000000000000 0:2c347bc297c1
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5 #ifndef nsHtml5TreeOpStage_h
6 #define nsHtml5TreeOpStage_h
7
8 #include "mozilla/Mutex.h"
9 #include "nsHtml5TreeOperation.h"
10 #include "nsTArray.h"
11 #include "nsAHtml5TreeOpSink.h"
12 #include "nsHtml5SpeculativeLoad.h"
13
14 class nsHtml5TreeOpStage : public nsAHtml5TreeOpSink {
15 public:
16
17 nsHtml5TreeOpStage();
18
19 virtual ~nsHtml5TreeOpStage();
20
21 /**
22 * Flush the operations from the tree operations from the argument
23 * queue unconditionally.
24 */
25 virtual void MoveOpsFrom(nsTArray<nsHtml5TreeOperation>& aOpQueue);
26
27 /**
28 * Retrieve the staged operations and speculative loads into the arguments.
29 */
30 void MoveOpsAndSpeculativeLoadsTo(nsTArray<nsHtml5TreeOperation>& aOpQueue,
31 nsTArray<nsHtml5SpeculativeLoad>& aSpeculativeLoadQueue);
32
33 /**
34 * Move the speculative loads from the argument into the staging queue.
35 */
36 void MoveSpeculativeLoadsFrom(nsTArray<nsHtml5SpeculativeLoad>& aSpeculativeLoadQueue);
37
38 /**
39 * Retrieve the staged speculative loads into the argument.
40 */
41 void MoveSpeculativeLoadsTo(nsTArray<nsHtml5SpeculativeLoad>& aSpeculativeLoadQueue);
42
43 #ifdef DEBUG
44 void AssertEmpty();
45 #endif
46
47 private:
48 nsTArray<nsHtml5TreeOperation> mOpQueue;
49 nsTArray<nsHtml5SpeculativeLoad> mSpeculativeLoadQueue;
50 mozilla::Mutex mMutex;
51
52 };
53
54 #endif /* nsHtml5TreeOpStage_h */

mercurial