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

Unified Diff: samples/chat/chat_stress_client.dart

Issue 9495007: Prepare the HTTP library for inclusion in the standalone VM (step 2) (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 10 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
Index: samples/chat/chat_stress_client.dart
diff --git a/samples/chat/chat_stress_client.dart b/samples/chat/chat_stress_client.dart
index 84a030e39e03912c911ff7432a51330f0fe0875d..1951ef1cc2accd86f5de61cecbd980c2a26cd1f0 100644
--- a/samples/chat/chat_stress_client.dart
+++ b/samples/chat/chat_stress_client.dart
@@ -3,6 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
#library("chat_stress_client.dart");
+#import("dart:io");
#import("dart:json");
#import("http.dart");
@@ -46,9 +47,7 @@ class ChatStressClient {
}
void leave() {
- HTTPClientResponse response;
-
- void leaveResponseHandler(String data) {
+ void leaveResponseHandler(HTTPClientResponse response, String data) {
httpClient.shutdown();
}
@@ -60,17 +59,18 @@ class ChatStressClient {
request.writeString(JSON.stringify(leaveRequest));
request.outputStream.close();
};
- conn.responseHandler = (HTTPClientResponse r) {
- response = r;
- response.dataEnd = leaveResponseHandler;
+ conn.responseHandler = (HTTPClientResponse response) {
+ StringInputStream stream = new StringInputStream(response.inputStream);
Anders Johnsen 2012/02/28 12:23:40 I agree that this operation is getting quite bloat
+ StringBuffer body = new StringBuffer();
+ stream.dataHandler = () => body.add(stream.read());
+ stream.closeHandler = () => leaveResponseHandler(response,
Mads Ager (google) 2012/02/28 12:27:40 Maybe either move the whole body to the next line
Søren Gjesse 2012/02/28 13:03:42 Done (using {} that is).
+ body.toString());
};
}
var sendMessage;
void receive() {
- HTTPClientResponse response;
-
- void receiveResponseHandler(String data) {
+ void receiveResponseHandler(HTTPClientResponse response, String data) {
var responseData = parseResponse(response, data, "receive");
if (responseData == null) return;
if (responseData["disconnect"] == true) return;
@@ -88,17 +88,17 @@ class ChatStressClient {
request.writeString(JSON.stringify(messageRequest));
request.outputStream.close();
};
- conn.responseHandler = (HTTPClientResponse r) {
- response = r;
- response.dataEnd = receiveResponseHandler;
+ conn.responseHandler = (HTTPClientResponse response) {
+ StringInputStream stream = new StringInputStream(response.inputStream);
+ StringBuffer body = new StringBuffer();
+ stream.dataHandler = () => body.add(stream.read());
+ stream.closeHandler = () => receiveResponseHandler(response,
+ body.toString());
};
}
sendMessage = () {
- HTTPClientRequest request;
- HTTPClientResponse response;
-
- void sendResponseHandler(String data) {
+ void sendResponseHandler(HTTPClientResponse response, String data) {
var responseData = parseResponse(response, data, "message");
if (responseData == null) return;
@@ -121,20 +121,20 @@ class ChatStressClient {
messageRequest["message"] = "message " + sendMessageCount;
HTTPClientConnection conn = httpClient.post("127.0.0.1", port, "/message");
conn.requestHandler = (HTTPClientRequest request) {
- print(JSON.stringify(messageRequest));
request.writeString(JSON.stringify(messageRequest));
request.outputStream.close();
};
- conn.responseHandler = (HTTPClientResponse r) {
- response = r;
- response.dataEnd = sendResponseHandler;
+ conn.responseHandler = (HTTPClientResponse response) {
+ StringInputStream stream = new StringInputStream(response.inputStream);
+ StringBuffer body = new StringBuffer();
+ stream.dataHandler = () => body.add(stream.read());
+ stream.closeHandler = () => sendResponseHandler(response,
+ body.toString());
};
};
void join() {
- HTTPClientResponse response;
-
- void joinResponseHandler(String data) {
+ void joinResponseHandler(HTTPClientResponse response, String data) {
var responseData = parseResponse(response, data, "join");
if (responseData == null) return;
sessionId = responseData["sessionId"];
@@ -153,9 +153,12 @@ class ChatStressClient {
request.writeString(JSON.stringify(joinRequest));
request.outputStream.close();
};
- conn.responseHandler = (HTTPClientResponse r) {
- response = r;
- response.dataEnd = joinResponseHandler;
+ conn.responseHandler = (HTTPClientResponse response) {
+ StringInputStream stream = new StringInputStream(response.inputStream);
+ StringBuffer body = new StringBuffer();
+ stream.dataHandler = () => body.add(stream.read());
+ stream.closeHandler = () => joinResponseHandler(response,
+ body.toString());
};
}

Powered by Google App Engine
This is Rietveld 408576698