1 | /* | |
2 | * Copyright 2006 - 2013 | |
3 | * Stefan Balev <stefan.balev@graphstream-project.org> | |
4 | * Julien Baudry <julien.baudry@graphstream-project.org> | |
5 | * Antoine Dutot <antoine.dutot@graphstream-project.org> | |
6 | * Yoann Pign�� <yoann.pigne@graphstream-project.org> | |
7 | * Guilhelm Savin <guilhelm.savin@graphstream-project.org> | |
8 | * | |
9 | * This file is part of GraphStream <http://graphstream-project.org>. | |
10 | * | |
11 | * GraphStream is a library whose purpose is to handle static or dynamic | |
12 | * graph, create them from scratch, file or any source and display them. | |
13 | * | |
14 | * This program is free software distributed under the terms of two licenses, the | |
15 | * CeCILL-C license that fits European law, and the GNU Lesser General Public | |
16 | * License. You can use, modify and/ or redistribute the software under the terms | |
17 | * of the CeCILL-C license as circulated by CEA, CNRS and INRIA at the following | |
18 | * URL <http://www.cecill.info> or under the terms of the GNU LGPL as published by | |
19 | * the Free Software Foundation, either version 3 of the License, or (at your | |
20 | * option) any later version. | |
21 | * | |
22 | * This program is distributed in the hope that it will be useful, but WITHOUT ANY | |
23 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A | |
24 | * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. | |
25 | * | |
26 | * You should have received a copy of the GNU Lesser General Public License | |
27 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | |
28 | * | |
29 | * The fact that you are presently reading this means that you have had | |
30 | * knowledge of the CeCILL-C and LGPL licenses and that you accept their terms. | |
31 | */ | |
32 | package org.graphstream.stream.netstream.packing; | |
33 | ||
34 | import java.nio.ByteBuffer; | |
35 | ||
36 | /** | |
37 | * | |
38 | */ | |
39 | public abstract class NetStreamUnpacker { | |
40 | | |
41 | /** | |
42 | * An unpacker has to be abble to indicated what is the size of an int after being packed. | |
43 | * @return | |
44 | */ | |
45 | public abstract int sizeOfInt(); | |
46 | | |
47 | /** | |
48 | * Unpack the given ByteBuffer from startIndex to endIdex | |
49 | * @param buffer The buffer to unpack/decode | |
50 | * @param startIndex the index at which the decoding starts in the buffer | |
51 | * @param endIndex the index at which the decoding stops | |
52 | * @return a ByteBuffer that is the unpacked version of the input one. It may not have the same size. | |
53 | */ | |
54 | public abstract ByteBuffer unpackMessage(ByteBuffer buffer, int startIndex, int endIndex); | |
55 | ||
56 | /** | |
57 | * Unpack the given ByteBuffer | |
58 | * @param buffer The buffer to unpack/decode | |
59 | * @return a ByteBuffer that is the unpacked version of the input one. It may not have the same size. | |
60 | */ | |
61 | public ByteBuffer unpackMessage(ByteBuffer buffer){ | |
62 |
1
1. unpackMessage : mutated return of Object value for org/graphstream/stream/netstream/packing/NetStreamUnpacker::unpackMessage to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return this.unpackMessage(buffer, 0, buffer.capacity()); |
63 | } | |
64 | ||
65 | /** | |
66 | * Unpacks the data necessary to decode a 4 bytes integer that indicates the size of the following message. | |
67 | * | |
68 | * The given buffer's position may be important for the unpacker to work. This method may also change the given bytebuffer's position attribute. | |
69 | * | |
70 | * @param buffer The byteBuffer who's content has the encoded value of the needed size integer. | |
71 | * @return | |
72 | */ | |
73 | public abstract int unpackMessageSize(ByteBuffer buffer); | |
74 | | |
75 | | |
76 | | |
77 | } | |
Mutations | ||
62 |
1.1 |