diff --git a/src/main/java/io/netty/handler/codec/http/websocket/DefaultWebSocketFrame.java b/src/main/java/io/netty/handler/codec/http/websocket/DefaultWebSocketFrame.java deleted file mode 100644 index 6205af6e3f..0000000000 --- a/src/main/java/io/netty/handler/codec/http/websocket/DefaultWebSocketFrame.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2011 The Netty Project - * - * The Netty Project licenses this file to you under the Apache License, - * version 2.0 (the "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - */ -package io.netty.handler.codec.http.websocket; - -import io.netty.buffer.ChannelBuffer; -import io.netty.buffer.ChannelBuffers; -import io.netty.util.CharsetUtil; - -/** - * The default {@link WebSocketFrame} implementation. - */ -public class DefaultWebSocketFrame implements WebSocketFrame { - - private int type; - private ChannelBuffer binaryData; - - /** - * Creates a new empty text frame. - */ - public DefaultWebSocketFrame() { - this(0, ChannelBuffers.EMPTY_BUFFER); - } - - /** - * Creates a new text frame from with the specified string. - */ - public DefaultWebSocketFrame(String textData) { - this(0, ChannelBuffers.copiedBuffer(textData, CharsetUtil.UTF_8)); - } - - /** - * Creates a new frame with the specified frame type and the specified data. - * - * @param type - * the type of the frame. {@code 0} is the only allowed type currently. - * @param binaryData - * the content of the frame. If (type & 0x80 == 0), - * it must be encoded in UTF-8. - * - * @throws IllegalArgumentException - * if If (type & 0x80 == 0) and the data is not encoded - * in UTF-8 - */ - public DefaultWebSocketFrame(int type, ChannelBuffer binaryData) { - setData(type, binaryData); - } - - @Override - public int getType() { - return type; - } - - @Override - public boolean isText() { - return (getType() & 0x80) == 0; - } - - @Override - public boolean isBinary() { - return !isText(); - } - - @Override - public ChannelBuffer getBinaryData() { - return binaryData; - } - - @Override - public String getTextData() { - return getBinaryData().toString(CharsetUtil.UTF_8); - } - - @Override - public void setData(int type, ChannelBuffer binaryData) { - if (binaryData == null) { - throw new NullPointerException("binaryData"); - } - - if ((type & 0x80) == 0) { - // If text, data should not contain 0xFF. - int delimPos = binaryData.indexOf( - binaryData.readerIndex(), binaryData.writerIndex(), (byte) 0xFF); - if (delimPos >= 0) { - throw new IllegalArgumentException( - "a text frame should not contain 0xFF."); - } - } - - this.type = type & 0xFF; - this.binaryData = binaryData; - } - - @Override - public String toString() { - return getClass().getSimpleName() + - "(type: " + getType() + ", " + "data: " + getBinaryData() + ')'; - } -} diff --git a/src/main/java/io/netty/handler/codec/http/websocket/WebSocketFrame.java b/src/main/java/io/netty/handler/codec/http/websocket/WebSocketFrame.java deleted file mode 100644 index 7b6f8d9296..0000000000 --- a/src/main/java/io/netty/handler/codec/http/websocket/WebSocketFrame.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2011 The Netty Project - * - * The Netty Project licenses this file to you under the Apache License, - * version 2.0 (the "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - */ -package io.netty.handler.codec.http.websocket; - -import io.netty.buffer.ChannelBuffer; -import io.netty.buffer.ChannelBuffers; - -/** - * A Web Socket frame that represents either text or binary data. - */ -public interface WebSocketFrame { - - /** - * Closing handshake message (0xFF, 0x00) - */ - WebSocketFrame CLOSING_HANDSHAKE = new DefaultWebSocketFrame(0xFF, ChannelBuffers.EMPTY_BUFFER); - - /** - * Returns the type of this frame. - * 0x00-0x7F means a text frame encoded in UTF-8, and - * 0x80-0xFF means a binary frame. Currently, {@code 0} is the - * only allowed type according to the specification. - */ - int getType(); - - /** - * Returns {@code true} if and only if the content of this frame is a string - * encoded in UTF-8. - */ - boolean isText(); - - /** - * Returns {@code true} if and only if the content of this frame is an - * arbitrary binary data. - */ - boolean isBinary(); - - /** - * Returns the content of this frame as-is, with no UTF-8 decoding. - */ - ChannelBuffer getBinaryData(); - - /** - * Converts the content of this frame into a UTF-8 string and returns the - * converted string. - */ - String getTextData(); - - /** - * Sets the type and the content of this frame. - * - * @param type - * the type of the frame. {@code 0} is the only allowed type currently. - * @param binaryData - * the content of the frame. If (type & 0x80 == 0), - * it must be encoded in UTF-8. - * - * @throws IllegalArgumentException - * if If (type & 0x80 == 0) and the data is not encoded - * in UTF-8 - */ - void setData(int type, ChannelBuffer binaryData); - - /** - * Returns the string representation of this frame. Please note that this - * method is not identical to {@link #getTextData()}. - */ - @Override - String toString(); -} diff --git a/src/main/java/io/netty/handler/codec/http/websocket/WebSocketFrameDecoder.java b/src/main/java/io/netty/handler/codec/http/websocket/WebSocketFrameDecoder.java deleted file mode 100644 index e6c3f10777..0000000000 --- a/src/main/java/io/netty/handler/codec/http/websocket/WebSocketFrameDecoder.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2011 The Netty Project - * - * The Netty Project licenses this file to you under the Apache License, - * version 2.0 (the "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - */ -package io.netty.handler.codec.http.websocket; - -import io.netty.buffer.ChannelBuffer; -import io.netty.channel.Channel; -import io.netty.channel.ChannelHandlerContext; -import io.netty.handler.codec.frame.TooLongFrameException; -import io.netty.handler.codec.replay.ReplayingDecoder; -import io.netty.handler.codec.replay.VoidEnum; - -/** - * Decodes {@link ChannelBuffer}s into {@link WebSocketFrame}s. - *
- * For the detailed instruction on adding add Web Socket support to your HTTP
- * server, take a look into the WebSocketServer example located in the
- * {@code io.netty.example.http.websocket} package.
- * @apiviz.landmark
- * @apiviz.uses io.netty.handler.codec.http.websocket.WebSocketFrame
- */
-public class WebSocketFrameDecoder extends ReplayingDecoder
- * For the detailed instruction on adding add Web Socket support to your HTTP
- * server, take a look into the WebSocketServer example located in the
- * {@code io.netty.example.http.websocket} package.
- * @apiviz.landmark
- * @apiviz.uses io.netty.handler.codec.http.websocket.WebSocketFrame
- */
-@Sharable
-public class WebSocketFrameEncoder extends OneToOneEncoder {
-
- @Override
- protected Object encode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception {
- if (msg instanceof WebSocketFrame) {
- WebSocketFrame frame = (WebSocketFrame) msg;
- int type = frame.getType();
- if (frame.isText()) {
- // Text frame
- ChannelBuffer data = frame.getBinaryData();
- ChannelBuffer encoded =
- channel.getConfig().getBufferFactory().getBuffer(
- data.order(), data.readableBytes() + 2);
- encoded.writeByte((byte) type);
- encoded.writeBytes(data, data.readerIndex(), data.readableBytes());
- encoded.writeByte((byte) 0xFF);
- return encoded;
- } else {
- // Binary frame
- ChannelBuffer data = frame.getBinaryData();
- int dataLen = data.readableBytes();
- ChannelBuffer encoded =
- channel.getConfig().getBufferFactory().getBuffer(
- data.order(), dataLen + 5);
-
- // Encode type.
- encoded.writeByte((byte) type);
-
- // Encode length.
- int b1 = dataLen >>> 28 & 0x7F;
- int b2 = dataLen >>> 14 & 0x7F;
- int b3 = dataLen >>> 7 & 0x7F;
- int b4 = dataLen & 0x7F;
- if (b1 == 0) {
- if (b2 == 0) {
- if (b3 == 0) {
- encoded.writeByte(b4);
- } else {
- encoded.writeByte(b3 | 0x80);
- encoded.writeByte(b4);
- }
- } else {
- encoded.writeByte(b2 | 0x80);
- encoded.writeByte(b3 | 0x80);
- encoded.writeByte(b4);
- }
- } else {
- encoded.writeByte(b1 | 0x80);
- encoded.writeByte(b2 | 0x80);
- encoded.writeByte(b3 | 0x80);
- encoded.writeByte(b4);
- }
-
- // Encode binary data.
- encoded.writeBytes(data, data.readerIndex(), dataLen);
- return encoded;
- }
- }
- return msg;
- }
-}
diff --git a/src/main/java/io/netty/handler/codec/http/websocket/package-info.java b/src/main/java/io/netty/handler/codec/http/websocket/package-info.java
deleted file mode 100644
index 32ae22c097..0000000000
--- a/src/main/java/io/netty/handler/codec/http/websocket/package-info.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2011 The Netty Project
- *
- * The Netty Project licenses this file to you under the Apache License,
- * version 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations
- * under the License.
- */
-
-/**
- * Encoder, decoder and their related message types for
- * Web Socket data frames.
- *
- * For the detailed instruction on adding add Web Socket support to your HTTP
- * server, take a look into the WebSocketServer example located in the
- * {@code io.netty.example.http.websocket} package.
- * *
- * @apiviz.exclude OneToOne(Encoder|Decoder)$
- * @apiviz.exclude \.codec\.replay\.
- * @apiviz.exclude \.Default
- */
-package io.netty.handler.codec.http.websocket;
diff --git a/src/main/java/io/netty/handler/codec/http/websocketx/package-info.java b/src/main/java/io/netty/handler/codec/http/websocketx/package-info.java
index e8cd470db9..5790d0061f 100644
--- a/src/main/java/io/netty/handler/codec/http/websocketx/package-info.java
+++ b/src/main/java/io/netty/handler/codec/http/websocketx/package-info.java
@@ -23,7 +23,8 @@
*
* In the future, as the specification develops, more versions will be supported.