Skip to content

Commit

Permalink
Enforce override annotations (flutter#14)
Browse files Browse the repository at this point in the history
  • Loading branch information
natebosch authored Jun 3, 2019
1 parent f18657a commit f56c6d6
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 0 deletions.
1 change: 1 addition & 0 deletions analysis_options.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ linter:
- avoid_init_to_null
- avoid_null_checks_in_equality_operators
- avoid_unused_constructor_parameters
- annotate_overrides
- await_only_futures
- camel_case_types
- cancel_subscriptions
Expand Down
12 changes: 12 additions & 0 deletions lib/http_multi_server.dart
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@ class HttpMultiServer extends StreamView<HttpRequest> implements HttpServer {
///
/// If the wrapped servers have different default values, it's not defined
/// which value is returned.
@override
String get serverHeader => _servers.first.serverHeader;
@override
set serverHeader(String value) {
for (var server in _servers) {
server.serverHeader = value;
Expand All @@ -46,16 +48,21 @@ class HttpMultiServer extends StreamView<HttpRequest> implements HttpServer {
///
/// If the wrapped servers have different default headers, it's not defined
/// which header is returned for accessor methods.
@override
final HttpHeaders defaultResponseHeaders;

@override
Duration get idleTimeout => _servers.first.idleTimeout;
@override
set idleTimeout(Duration value) {
for (var server in _servers) {
server.idleTimeout = value;
}
}

@override
bool get autoCompress => _servers.first.autoCompress;
@override
set autoCompress(bool value) {
for (var server in _servers) {
server.autoCompress = value;
Expand All @@ -66,14 +73,17 @@ class HttpMultiServer extends StreamView<HttpRequest> implements HttpServer {
///
/// If the wrapped servers are listening on different ports, it's not defined
/// which port is returned.
@override
int get port => _servers.first.port;

/// Returns the address that one of the wrapped servers is listening on.
///
/// If the wrapped servers are listening on different addresses, it's not
/// defined which address is returned.
@override
InternetAddress get address => _servers.first.address;

@override
set sessionTimeout(int value) {
for (var server in _servers) {
server.sessionTimeout = value;
Expand Down Expand Up @@ -160,11 +170,13 @@ class HttpMultiServer extends StreamView<HttpRequest> implements HttpServer {
}
}

@override
Future close({bool force = false}) =>
Future.wait(_servers.map((server) => server.close(force: force)));

/// Returns an HttpConnectionsInfo object summarizing the total number of
/// current connections handled by all the servers.
@override
HttpConnectionsInfo connectionsInfo() {
var info = HttpConnectionsInfo();
for (var server in _servers) {
Expand Down
27 changes: 27 additions & 0 deletions lib/src/multi_headers.dart
Original file line number Diff line number Diff line change
Expand Up @@ -10,63 +10,81 @@ class MultiHeaders implements HttpHeaders {
/// The wrapped headers.
final Set<HttpHeaders> _headers;

@override
bool get chunkedTransferEncoding => _headers.first.chunkedTransferEncoding;
@override
set chunkedTransferEncoding(bool value) {
for (var headers in _headers) {
headers.chunkedTransferEncoding = value;
}
}

@override
int get contentLength => _headers.first.contentLength;
@override
set contentLength(int value) {
for (var headers in _headers) {
headers.contentLength = value;
}
}

@override
ContentType get contentType => _headers.first.contentType;
@override
set contentType(ContentType value) {
for (var headers in _headers) {
headers.contentType = value;
}
}

@override
DateTime get date => _headers.first.date;
@override
set date(DateTime value) {
for (var headers in _headers) {
headers.date = value;
}
}

@override
DateTime get expires => _headers.first.expires;
@override
set expires(DateTime value) {
for (var headers in _headers) {
headers.expires = value;
}
}

@override
String get host => _headers.first.host;
@override
set host(String value) {
for (var headers in _headers) {
headers.host = value;
}
}

@override
DateTime get ifModifiedSince => _headers.first.ifModifiedSince;
@override
set ifModifiedSince(DateTime value) {
for (var headers in _headers) {
headers.ifModifiedSince = value;
}
}

@override
bool get persistentConnection => _headers.first.persistentConnection;
@override
set persistentConnection(bool value) {
for (var headers in _headers) {
headers.persistentConnection = value;
}
}

@override
int get port => _headers.first.port;
@override
set port(int value) {
for (var headers in _headers) {
headers.port = value;
Expand All @@ -75,43 +93,52 @@ class MultiHeaders implements HttpHeaders {

MultiHeaders(Iterable<HttpHeaders> headers) : _headers = headers.toSet();

@override
void add(String name, Object value) {
for (var headers in _headers) {
headers.add(name, value);
}
}

@override
void forEach(void f(String name, List<String> values)) =>
_headers.first.forEach(f);

@override
void noFolding(String name) {
for (var headers in _headers) {
headers.noFolding(name);
}
}

@override
void remove(String name, Object value) {
for (var headers in _headers) {
headers.remove(name, value);
}
}

@override
void removeAll(String name) {
for (var headers in _headers) {
headers.removeAll(name);
}
}

@override
void set(String name, Object value) {
for (var headers in _headers) {
headers.set(name, value);
}
}

@override
String value(String name) => _headers.first.value(name);

@override
List<String> operator [](String name) => _headers.first[name];

@override
void clear() {
for (var headers in _headers) {
headers.clear();
Expand Down

0 comments on commit f56c6d6

Please sign in to comment.