/*******************************************************************************
* Copyright (c) 2012-2017 Codenvy, S.A.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.ide.websocket.events;
/**
* Event is fired, when WebSocket connection is closed.
*
* @author Artem Zatsarynnyi
*/
public class WebSocketClosedEvent {
/**
* Normal closure; the connection successfully completed whatever purpose for which it was created.
*/
public static final int CLOSE_NORMAL = 1000;
/**
* The endpoint is going away, either because of a server failure or because the browser is navigating away from the page that opened
* the connection.
*/
public static final int CLOSE_GOING_AWAY = 1001;
/**
* The endpoint is terminating the connection due to a protocol error.
*/
public static final int CLOSE_PROTOCOL_ERROR = 1002;
/**
* The connection is being terminated because the endpoint received data of a type it cannot accept (for example, a text-only endpoint
* received binary data).
*/
public static final int CLOSE_UNSUPPORTED = 1003;
/**
* Indicates that no status code was provided even though one was expected.
*/
public static final int CLOSE_NO_STATUS = 1005;
/**
* Reserved. Used to indicate that a connection was closed abnormally (that is, with no close frame being sent) when a status code is
* expected.
*/
public static final int CLOSE_ABNORMAL = 1006;
/**
* The endpoint is terminating the connection because a message was received that contained inconsistent data
* (e.g., non-UTF-8 data within a text message).
*/
public static final int CLOSE_INCONSISTENT_DATA = 1007;
/**
* The endpoint is terminating the connection because it received a message that violates its policy.
* This is a generic status code, used when codes 1003 and 1009 are not suitable.
*/
public static final int CLOSE_VIOLATE_POLICY = 1008;
/**
* The endpoint is terminating the connection because a data frame was received that is too large.
*/
public static final int CLOSE_TOO_LARGE = 1009;
/**
* The client is terminating the connection because it expected the server to negotiate one or more extension, but the server didn't.
*/
public static final int CLOSE_NEGOTIATE_EXTENSION = 1010;
/**
* The server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the
* request.
*/
public static final int CLOSE_UNEXPECTED_CONDITION = 1011;
/**
* Reserved. Indicates that the connection was closed due to a failure to perform a TLS handshake
* (e.g., the server certificate can't be verified).
*/
public static final int CLOSE_FAILURE_TLS_HANDSHAKE = 1015;
/**
* The WebSocket connection close code provided by the server.
*/
private int code;
/** A string indicating the reason the server closed the connection. This is specific to the particular server and sub-protocol. */
private String reason;
/** Indicates whether or not the connection was cleanly closed. */
private boolean wasClean;
public WebSocketClosedEvent() {
}
public WebSocketClosedEvent(int code, String reason, boolean wasClean) {
this.code = code;
this.reason = reason;
this.wasClean = wasClean;
}
/**
* Returns close code.
*
* @return close code
*/
public int getCode() {
return code;
}
/**
* Returns the reason closed the connection.
*
* @return reason
*/
public String getReason() {
return reason;
}
/**
* Checks weather the connection was cleanly closed.
*
* @return <code>true</code> when WebSocket connection was cleanly closed;
* <code>false</code> when WebSocket connection was not cleanly closed
*/
public boolean wasClean() {
return wasClean;
}
}