Line data Source code
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 nsHtml5ByteReadable_h
6 : #define nsHtml5ByteReadable_h
7 :
8 : /**
9 : * A weak reference wrapper around a byte array.
10 : */
11 : class nsHtml5ByteReadable
12 : {
13 : public:
14 :
15 2 : nsHtml5ByteReadable(const uint8_t* aCurrent, const uint8_t* aEnd)
16 2 : : current(aCurrent),
17 2 : end(aEnd)
18 : {
19 2 : }
20 :
21 552 : inline int32_t read() {
22 552 : if (current < end) {
23 552 : return *(current++);
24 : } else {
25 0 : return -1;
26 : }
27 : }
28 :
29 : private:
30 : const uint8_t* current;
31 : const uint8_t* end;
32 : };
33 : #endif
|