xref: /unit/src/java/javax/websocket/Decoder.java (revision 1157:7ae152bda303)
1*1157Smax.romanov@nginx.com /*
2*1157Smax.romanov@nginx.com  * Licensed to the Apache Software Foundation (ASF) under one or more
3*1157Smax.romanov@nginx.com  * contributor license agreements.  See the NOTICE file distributed with
4*1157Smax.romanov@nginx.com  * this work for additional information regarding copyright ownership.
5*1157Smax.romanov@nginx.com  * The ASF licenses this file to You under the Apache License, Version 2.0
6*1157Smax.romanov@nginx.com  * (the "License"); you may not use this file except in compliance with
7*1157Smax.romanov@nginx.com  * the License.  You may obtain a copy of the License at
8*1157Smax.romanov@nginx.com  *
9*1157Smax.romanov@nginx.com  *     http://www.apache.org/licenses/LICENSE-2.0
10*1157Smax.romanov@nginx.com  *
11*1157Smax.romanov@nginx.com  * Unless required by applicable law or agreed to in writing, software
12*1157Smax.romanov@nginx.com  * distributed under the License is distributed on an "AS IS" BASIS,
13*1157Smax.romanov@nginx.com  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*1157Smax.romanov@nginx.com  * See the License for the specific language governing permissions and
15*1157Smax.romanov@nginx.com  * limitations under the License.
16*1157Smax.romanov@nginx.com  */
17*1157Smax.romanov@nginx.com package javax.websocket;
18*1157Smax.romanov@nginx.com 
19*1157Smax.romanov@nginx.com import java.io.IOException;
20*1157Smax.romanov@nginx.com import java.io.InputStream;
21*1157Smax.romanov@nginx.com import java.io.Reader;
22*1157Smax.romanov@nginx.com import java.nio.ByteBuffer;
23*1157Smax.romanov@nginx.com 
24*1157Smax.romanov@nginx.com public interface Decoder {
25*1157Smax.romanov@nginx.com 
init(EndpointConfig endpointConfig)26*1157Smax.romanov@nginx.com     abstract void init(EndpointConfig endpointConfig);
27*1157Smax.romanov@nginx.com 
destroy()28*1157Smax.romanov@nginx.com     abstract void destroy();
29*1157Smax.romanov@nginx.com 
30*1157Smax.romanov@nginx.com     interface Binary<T> extends Decoder {
31*1157Smax.romanov@nginx.com 
decode(ByteBuffer bytes)32*1157Smax.romanov@nginx.com         T decode(ByteBuffer bytes) throws DecodeException;
33*1157Smax.romanov@nginx.com 
willDecode(ByteBuffer bytes)34*1157Smax.romanov@nginx.com         boolean willDecode(ByteBuffer bytes);
35*1157Smax.romanov@nginx.com     }
36*1157Smax.romanov@nginx.com 
37*1157Smax.romanov@nginx.com     interface BinaryStream<T> extends Decoder {
38*1157Smax.romanov@nginx.com 
decode(InputStream is)39*1157Smax.romanov@nginx.com         T decode(InputStream is) throws DecodeException, IOException;
40*1157Smax.romanov@nginx.com     }
41*1157Smax.romanov@nginx.com 
42*1157Smax.romanov@nginx.com     interface Text<T> extends Decoder {
43*1157Smax.romanov@nginx.com 
decode(String s)44*1157Smax.romanov@nginx.com         T decode(String s) throws DecodeException;
45*1157Smax.romanov@nginx.com 
willDecode(String s)46*1157Smax.romanov@nginx.com         boolean willDecode(String s);
47*1157Smax.romanov@nginx.com     }
48*1157Smax.romanov@nginx.com 
49*1157Smax.romanov@nginx.com     interface TextStream<T> extends Decoder {
50*1157Smax.romanov@nginx.com 
decode(Reader reader)51*1157Smax.romanov@nginx.com         T decode(Reader reader) throws DecodeException, IOException;
52*1157Smax.romanov@nginx.com     }
53*1157Smax.romanov@nginx.com }
54