Line data Source code
1 : /*
2 : * Package : Cbor
3 : * Author : S. Hamblett <steve.hamblett@linux.com>
4 : * Date : 12/12/2016
5 : * Copyright : S.Hamblett
6 : */
7 :
8 : part of cbor;
9 :
10 : /// The standard output class.
11 : class OutputStandard extends Output {
12 4 : OutputStandard() {
13 8 : this._buffer = new typed.Uint8Buffer();
14 8 : this._pauseBuffer = new typed.Uint8Buffer();
15 : }
16 :
17 : /// Overridden methods
18 : void clear() {
19 8 : _buffer.clear();
20 : }
21 :
22 : int size() {
23 6 : return _buffer.length;
24 : }
25 :
26 : void putByte(int value) {
27 6 : _buffer.add(value);
28 : }
29 :
30 : void putBytes(typed.Uint8Buffer data) {
31 8 : _buffer.addAll(data);
32 : }
33 :
34 : void mark() {
35 9 : _markPos = _buffer.length;
36 : }
37 :
38 : void resetToMark() {
39 0 : if (_buffer.length > _markPos) {
40 0 : _buffer.removeRange(_markPos, _buffer.length);
41 : }
42 : }
43 :
44 : void pause() {
45 2 : if (!_paused) {
46 4 : _pauseBuffer.clear();
47 6 : _pauseBuffer.addAll(_buffer);
48 4 : _buffer.clear();
49 2 : _paused = true;
50 : }
51 : }
52 :
53 : void restart([bool append = false]) {
54 2 : if (_paused) {
55 : if (append) {
56 0 : _pauseBuffer.addAll(_buffer);
57 : }
58 4 : _buffer.clear();
59 6 : _buffer.addAll(_pauseBuffer);
60 2 : _paused = false;
61 : }
62 : }
63 :
64 : /// Additional methods.
65 :
66 : List<int> getDataAsList() {
67 4 : return _buffer.toList();
68 : }
69 : }
|