| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of dart.io; | 5 part of dart.io; |
| 6 | 6 |
| 7 class _HttpHeaders implements HttpHeaders { | 7 class _HttpHeaders implements HttpHeaders { |
| 8 final Map<String, List<String>> _headers; | 8 final Map<String, List<String>> _headers; |
| 9 final String protocolVersion; | 9 final String protocolVersion; |
| 10 | 10 |
| (...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 389 int _write(Uint8List buffer, int offset) { | 389 int _write(Uint8List buffer, int offset) { |
| 390 void write(List<int> bytes) { | 390 void write(List<int> bytes) { |
| 391 int len = bytes.length; | 391 int len = bytes.length; |
| 392 for (int i = 0; i < len; i++) { | 392 for (int i = 0; i < len; i++) { |
| 393 buffer[offset + i] = bytes[i]; | 393 buffer[offset + i] = bytes[i]; |
| 394 } | 394 } |
| 395 offset += len; | 395 offset += len; |
| 396 } | 396 } |
| 397 | 397 |
| 398 // Format headers. | 398 // Format headers. |
| 399 _headers.forEach((String name, List<String> values) { | 399 for (String name in _headers.keys) { |
| 400 List<String> values = _headers[name]; |
| 400 bool fold = _foldHeader(name); | 401 bool fold = _foldHeader(name); |
| 401 var nameData = name.codeUnits; | 402 var nameData = name.codeUnits; |
| 402 write(nameData); | 403 write(nameData); |
| 403 write(const [_CharCode.COLON, _CharCode.SP]); | 404 buffer[offset++] = _CharCode.COLON; |
| 405 buffer[offset++] = _CharCode.SP; |
| 404 for (int i = 0; i < values.length; i++) { | 406 for (int i = 0; i < values.length; i++) { |
| 405 if (i > 0) { | 407 if (i > 0) { |
| 406 if (fold) { | 408 if (fold) { |
| 407 write(const [_CharCode.COMMA, _CharCode.SP]); | 409 buffer[offset++] = _CharCode.COMMA; |
| 410 buffer[offset++] = _CharCode.SP; |
| 408 } else { | 411 } else { |
| 409 write(const [_CharCode.CR, _CharCode.LF]); | 412 buffer[offset++] = _CharCode.CR; |
| 413 buffer[offset++] = _CharCode.LF; |
| 410 write(nameData); | 414 write(nameData); |
| 411 write(const [_CharCode.COLON, _CharCode.SP]); | 415 buffer[offset++] = _CharCode.COLON; |
| 416 buffer[offset++] = _CharCode.SP; |
| 412 } | 417 } |
| 413 } | 418 } |
| 414 write(values[i].codeUnits); | 419 write(values[i].codeUnits); |
| 415 } | 420 } |
| 416 write(const [_CharCode.CR, _CharCode.LF]); | 421 buffer[offset++] = _CharCode.CR; |
| 417 }); | 422 buffer[offset++] = _CharCode.LF; |
| 423 } |
| 418 return offset; | 424 return offset; |
| 419 } | 425 } |
| 420 | 426 |
| 421 String toString() { | 427 String toString() { |
| 422 StringBuffer sb = new StringBuffer(); | 428 StringBuffer sb = new StringBuffer(); |
| 423 _headers.forEach((String name, List<String> values) { | 429 _headers.forEach((String name, List<String> values) { |
| 424 sb..write(name)..write(": "); | 430 sb..write(name)..write(": "); |
| 425 bool fold = _foldHeader(name); | 431 bool fold = _foldHeader(name); |
| 426 for (int i = 0; i < values.length; i++) { | 432 for (int i = 0; i < values.length; i++) { |
| 427 if (i > 0) { | 433 if (i > 0) { |
| (...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 849 void clear() { | 855 void clear() { |
| 850 throw new UnsupportedError("Cannot modify an unmodifiable map"); | 856 throw new UnsupportedError("Cannot modify an unmodifiable map"); |
| 851 } | 857 } |
| 852 void forEach(void f(K key, V value)) => _map.forEach(f); | 858 void forEach(void f(K key, V value)) => _map.forEach(f); |
| 853 Iterable<K> get keys => _map.keys; | 859 Iterable<K> get keys => _map.keys; |
| 854 Iterable<V> get values => _map.values; | 860 Iterable<V> get values => _map.values; |
| 855 int get length => _map.length; | 861 int get length => _map.length; |
| 856 bool get isEmpty => _map.isEmpty; | 862 bool get isEmpty => _map.isEmpty; |
| 857 bool get isNotEmpty => _map.isNotEmpty; | 863 bool get isNotEmpty => _map.isNotEmpty; |
| 858 } | 864 } |
| OLD | NEW |