Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1436)

Unified Diff: samples/chat/chat_server_lib.dart

Issue 10837070: Remove old isolate API and update all code in the repository to use (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address review comments. Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « samples/chat/chat_server.dart ('k') | samples/dartcombat/player.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: samples/chat/chat_server_lib.dart
diff --git a/samples/chat/chat_server_lib.dart b/samples/chat/chat_server_lib.dart
index a892a1987921d4e0ddaba4d6040b48a00cf578a8..8103c9c46df9d70518836d9fc254b5847d4b5872 100644
--- a/samples/chat/chat_server_lib.dart
+++ b/samples/chat/chat_server_lib.dart
@@ -7,23 +7,26 @@
#import("dart:isolate");
#import("dart:json");
+void startChatServer() {
+ var server = new ChatServer();
+ server.init();
+ port.receive(server.dispatch);
+}
+
class ChatServer extends IsolatedServer {
}
class ServerMain {
- ServerMain.start(IsolatedServer server,
+ ServerMain.start(SendPort serverPort,
String hostAddress,
int tcpPort,
[int listenBacklog = 5])
: _statusPort = new ReceivePort(),
- _serverPort = null {
- server.spawn().then((SendPort port) {
- _serverPort = port;
- _start(hostAddress, tcpPort, listenBacklog);
- });
+ _serverPort = serverPort {
// We can only guess this is the right URL. At least it gives a
// hint to the user.
print('Server starting http://${hostAddress}:${tcpPort}/');
+ _start(hostAddress, tcpPort, listenBacklog);
}
void _start(String hostAddress, int tcpPort, int listenBacklog) {
@@ -287,7 +290,7 @@ class ChatServerStatus {
}
-class IsolatedServer extends Isolate {
+class IsolatedServer {
static final String redirectPageHtml = """
<html>
<head><title>Welcome to the dart server</title></head>
@@ -520,7 +523,7 @@ class IsolatedServer extends Isolate {
};
}
- void main() {
+ void init() {
_logRequests = false;
_topic = new Topic();
_serverStart = new Date.now();
@@ -530,76 +533,76 @@ class IsolatedServer extends Isolate {
// Start a timer for cleanup events.
_cleanupTimer =
new Timer.repeating(10000, (timer) => _topic._handleTimer(timer));
+ }
- // Start timer for periodic logging.
- void _handleLogging(Timer timer) {
- if (_logging) {
- print("${_messageRate.rate} messages/s "
- "(total $_messageCount messages)");
- }
+ // Start timer for periodic logging.
+ void _handleLogging(Timer timer) {
+ if (_logging) {
+ print("${_messageRate.rate} messages/s "
+ "(total $_messageCount messages)");
}
+ }
- this.port.receive((var message, SendPort replyTo) {
- if (message.isStart) {
- _host = message.host;
- _port = message.port;
- _logging = message.logging;
- replyTo.send(new ChatServerStatus.starting(), null);
- _server = new HttpServer();
- _server.defaultRequestHandler = _notFoundHandler;
- _server.addRequestHandler(
- (request) => request.path == "/",
- (HttpRequest request, HttpResponse response) =>
- redirectPageHandler(
- request, response, "dart_client/index.html"));
- _server.addRequestHandler(
- (request) => request.path == "/js_client/index.html",
- (HttpRequest request, HttpResponse response) =>
- fileHandler(request, response));
- _server.addRequestHandler(
- (request) => request.path == "/js_client/code.js",
- (HttpRequest request, HttpResponse response) =>
- fileHandler(request, response));
- _server.addRequestHandler(
- (request) => request.path == "/dart_client/index.html",
- (HttpRequest request, HttpResponse response) =>
- fileHandler(request, response));
- _server.addRequestHandler(
- (request) => request.path == "/out.js",
- (HttpRequest request, HttpResponse response) =>
- fileHandler(request, response));
- _server.addRequestHandler(
- (request) => request.path == "/favicon.ico",
- (HttpRequest request, HttpResponse response) =>
- fileHandler(request, response, "static/favicon.ico"));
-
- _server.addRequestHandler(
- (request) => request.path == "/join", _joinHandler);
- _server.addRequestHandler(
- (request) => request.path == "/leave", _leaveHandler);
- _server.addRequestHandler(
- (request) => request.path == "/message", _messageHandler);
- _server.addRequestHandler(
- (request) => request.path == "/receive", _receiveHandler);
- try {
- _server.listen(_host, _port, backlog: message.backlog);
- replyTo.send(new ChatServerStatus.started(_server.port), null);
- _loggingTimer = new Timer.repeating(1000, _handleLogging);
- } catch (var e) {
- replyTo.send(new ChatServerStatus.error(e.toString()), null);
- }
- } else if (message.isStop) {
- replyTo.send(new ChatServerStatus.stopping(), null);
- stop();
- replyTo.send(new ChatServerStatus.stopped(), null);
+ void dispatch(message, replyTo) {
+ if (message.isStart) {
+ _host = message.host;
+ _port = message.port;
+ _logging = message.logging;
+ replyTo.send(new ChatServerStatus.starting(), null);
+ _server = new HttpServer();
+ _server.defaultRequestHandler = _notFoundHandler;
+ _server.addRequestHandler(
+ (request) => request.path == "/",
+ (HttpRequest request, HttpResponse response) =>
+ redirectPageHandler(
+ request, response, "dart_client/index.html"));
+ _server.addRequestHandler(
+ (request) => request.path == "/js_client/index.html",
+ (HttpRequest request, HttpResponse response) =>
+ fileHandler(request, response));
+ _server.addRequestHandler(
+ (request) => request.path == "/js_client/code.js",
+ (HttpRequest request, HttpResponse response) =>
+ fileHandler(request, response));
+ _server.addRequestHandler(
+ (request) => request.path == "/dart_client/index.html",
+ (HttpRequest request, HttpResponse response) =>
+ fileHandler(request, response));
+ _server.addRequestHandler(
+ (request) => request.path == "/out.js",
+ (HttpRequest request, HttpResponse response) =>
+ fileHandler(request, response));
+ _server.addRequestHandler(
+ (request) => request.path == "/favicon.ico",
+ (HttpRequest request, HttpResponse response) =>
+ fileHandler(request, response, "static/favicon.ico"));
+
+ _server.addRequestHandler(
+ (request) => request.path == "/join", _joinHandler);
+ _server.addRequestHandler(
+ (request) => request.path == "/leave", _leaveHandler);
+ _server.addRequestHandler(
+ (request) => request.path == "/message", _messageHandler);
+ _server.addRequestHandler(
+ (request) => request.path == "/receive", _receiveHandler);
+ try {
+ _server.listen(_host, _port, backlog: message.backlog);
+ replyTo.send(new ChatServerStatus.started(_server.port), null);
+ _loggingTimer = new Timer.repeating(1000, _handleLogging);
+ } catch (var e) {
+ replyTo.send(new ChatServerStatus.error(e.toString()), null);
}
- });
+ } else if (message.isStop) {
+ replyTo.send(new ChatServerStatus.stopping(), null);
+ stop();
+ replyTo.send(new ChatServerStatus.stopped(), null);
+ }
}
stop() {
_server.close();
_cleanupTimer.cancel();
- this.port.close();
+ port.close();
}
String _host;
« no previous file with comments | « samples/chat/chat_server.dart ('k') | samples/dartcombat/player.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698