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

Side by Side Diff: webrtc/examples/androidapp/src/org/appspot/apprtc/WebSocketChannelClient.java

Issue 2377003002: Format all Java in WebRTC. (Closed)
Patch Set: Rebase. Created 4 years, 2 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2014 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2014 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 private WebSocketConnectionState state; 49 private WebSocketConnectionState state;
50 private final Object closeEventLock = new Object(); 50 private final Object closeEventLock = new Object();
51 private boolean closeEvent; 51 private boolean closeEvent;
52 // WebSocket send queue. Messages are added to the queue when WebSocket 52 // WebSocket send queue. Messages are added to the queue when WebSocket
53 // client is not registered and are consumed in register() call. 53 // client is not registered and are consumed in register() call.
54 private final LinkedList<String> wsSendQueue; 54 private final LinkedList<String> wsSendQueue;
55 55
56 /** 56 /**
57 * Possible WebSocket connection states. 57 * Possible WebSocket connection states.
58 */ 58 */
59 public enum WebSocketConnectionState { 59 public enum WebSocketConnectionState { NEW, CONNECTED, REGISTERED, CLOSED, ERR OR }
60 NEW, CONNECTED, REGISTERED, CLOSED, ERROR
61 };
62 60
63 /** 61 /**
64 * Callback interface for messages delivered on WebSocket. 62 * Callback interface for messages delivered on WebSocket.
65 * All events are dispatched from a looper executor thread. 63 * All events are dispatched from a looper executor thread.
66 */ 64 */
67 public interface WebSocketChannelEvents { 65 public interface WebSocketChannelEvents {
68 void onWebSocketMessage(final String message); 66 void onWebSocketMessage(final String message);
69 void onWebSocketClose(); 67 void onWebSocketClose();
70 void onWebSocketError(final String description); 68 void onWebSocketError(final String description);
71 } 69 }
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 checkIfCalledOnValidThread(); 170 checkIfCalledOnValidThread();
173 Log.d(TAG, "Disconnect WebSocket. State: " + state); 171 Log.d(TAG, "Disconnect WebSocket. State: " + state);
174 if (state == WebSocketConnectionState.REGISTERED) { 172 if (state == WebSocketConnectionState.REGISTERED) {
175 // Send "bye" to WebSocket server. 173 // Send "bye" to WebSocket server.
176 send("{\"type\": \"bye\"}"); 174 send("{\"type\": \"bye\"}");
177 state = WebSocketConnectionState.CONNECTED; 175 state = WebSocketConnectionState.CONNECTED;
178 // Send http DELETE to http WebSocket server. 176 // Send http DELETE to http WebSocket server.
179 sendWSSMessage("DELETE", ""); 177 sendWSSMessage("DELETE", "");
180 } 178 }
181 // Close WebSocket in CONNECTED or ERROR states only. 179 // Close WebSocket in CONNECTED or ERROR states only.
182 if (state == WebSocketConnectionState.CONNECTED 180 if (state == WebSocketConnectionState.CONNECTED || state == WebSocketConnect ionState.ERROR) {
183 || state == WebSocketConnectionState.ERROR) {
184 ws.disconnect(); 181 ws.disconnect();
185 state = WebSocketConnectionState.CLOSED; 182 state = WebSocketConnectionState.CLOSED;
186 183
187 // Wait for websocket close event to prevent websocket library from 184 // Wait for websocket close event to prevent websocket library from
188 // sending any pending messages to deleted looper thread. 185 // sending any pending messages to deleted looper thread.
189 if (waitForComplete) { 186 if (waitForComplete) {
190 synchronized (closeEventLock) { 187 synchronized (closeEventLock) {
191 while (!closeEvent) { 188 while (!closeEvent) {
192 try { 189 try {
193 closeEventLock.wait(CLOSE_TIMEOUT); 190 closeEventLock.wait(CLOSE_TIMEOUT);
(...skipping 18 matching lines...) Expand all
212 events.onWebSocketError(errorMessage); 209 events.onWebSocketError(errorMessage);
213 } 210 }
214 } 211 }
215 }); 212 });
216 } 213 }
217 214
218 // Asynchronously send POST/DELETE to WebSocket server. 215 // Asynchronously send POST/DELETE to WebSocket server.
219 private void sendWSSMessage(final String method, final String message) { 216 private void sendWSSMessage(final String method, final String message) {
220 String postUrl = postServerUrl + "/" + roomID + "/" + clientID; 217 String postUrl = postServerUrl + "/" + roomID + "/" + clientID;
221 Log.d(TAG, "WS " + method + " : " + postUrl + " : " + message); 218 Log.d(TAG, "WS " + method + " : " + postUrl + " : " + message);
222 AsyncHttpURLConnection httpConnection = new AsyncHttpURLConnection( 219 AsyncHttpURLConnection httpConnection =
223 method, postUrl, message, new AsyncHttpEvents() { 220 new AsyncHttpURLConnection(method, postUrl, message, new AsyncHttpEvents () {
224 @Override 221 @Override
225 public void onHttpError(String errorMessage) { 222 public void onHttpError(String errorMessage) {
226 reportError("WS " + method + " error: " + errorMessage); 223 reportError("WS " + method + " error: " + errorMessage);
227 } 224 }
228 225
229 @Override 226 @Override
230 public void onHttpComplete(String response) { 227 public void onHttpComplete(String response) {}
231 }
232 }); 228 });
233 httpConnection.send(); 229 httpConnection.send();
234 } 230 }
235 231
236 // Helper method for debugging purposes. Ensures that WebSocket method is 232 // Helper method for debugging purposes. Ensures that WebSocket method is
237 // called on a looper thread. 233 // called on a looper thread.
238 private void checkIfCalledOnValidThread() { 234 private void checkIfCalledOnValidThread() {
239 if (Thread.currentThread() != handler.getLooper().getThread()) { 235 if (Thread.currentThread() != handler.getLooper().getThread()) {
240 throw new IllegalStateException( 236 throw new IllegalStateException("WebSocket method is not called on valid t hread");
241 "WebSocket method is not called on valid thread");
242 } 237 }
243 } 238 }
244 239
245 private class WebSocketObserver implements WebSocketConnectionObserver { 240 private class WebSocketObserver implements WebSocketConnectionObserver {
246 @Override 241 @Override
247 public void onOpen() { 242 public void onOpen() {
248 Log.d(TAG, "WebSocket connection opened to: " + wsServerUrl); 243 Log.d(TAG, "WebSocket connection opened to: " + wsServerUrl);
249 handler.post(new Runnable() { 244 handler.post(new Runnable() {
250 @Override 245 @Override
251 public void run() { 246 public void run() {
252 state = WebSocketConnectionState.CONNECTED; 247 state = WebSocketConnectionState.CONNECTED;
253 // Check if we have pending register request. 248 // Check if we have pending register request.
254 if (roomID != null && clientID != null) { 249 if (roomID != null && clientID != null) {
255 register(roomID, clientID); 250 register(roomID, clientID);
256 } 251 }
257 } 252 }
258 }); 253 });
259 } 254 }
260 255
261 @Override 256 @Override
262 public void onClose(WebSocketCloseNotification code, String reason) { 257 public void onClose(WebSocketCloseNotification code, String reason) {
263 Log.d(TAG, "WebSocket connection closed. Code: " + code 258 Log.d(TAG, "WebSocket connection closed. Code: " + code + ". Reason: " + r eason + ". State: "
264 + ". Reason: " + reason + ". State: " + state); 259 + state);
265 synchronized (closeEventLock) { 260 synchronized (closeEventLock) {
266 closeEvent = true; 261 closeEvent = true;
267 closeEventLock.notify(); 262 closeEventLock.notify();
268 } 263 }
269 handler.post(new Runnable() { 264 handler.post(new Runnable() {
270 @Override 265 @Override
271 public void run() { 266 public void run() {
272 if (state != WebSocketConnectionState.CLOSED) { 267 if (state != WebSocketConnectionState.CLOSED) {
273 state = WebSocketConnectionState.CLOSED; 268 state = WebSocketConnectionState.CLOSED;
274 events.onWebSocketClose(); 269 events.onWebSocketClose();
(...skipping 11 matching lines...) Expand all
286 public void run() { 281 public void run() {
287 if (state == WebSocketConnectionState.CONNECTED 282 if (state == WebSocketConnectionState.CONNECTED
288 || state == WebSocketConnectionState.REGISTERED) { 283 || state == WebSocketConnectionState.REGISTERED) {
289 events.onWebSocketMessage(message); 284 events.onWebSocketMessage(message);
290 } 285 }
291 } 286 }
292 }); 287 });
293 } 288 }
294 289
295 @Override 290 @Override
296 public void onRawTextMessage(byte[] payload) { 291 public void onRawTextMessage(byte[] payload) {}
297 }
298 292
299 @Override 293 @Override
300 public void onBinaryMessage(byte[] payload) { 294 public void onBinaryMessage(byte[] payload) {}
301 }
302 } 295 }
303
304 } 296 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698