diff options
author | Constantin Kaplinsky <const@tightvnc.com> | 2008-06-21 11:41:42 +0000 |
---|---|---|
committer | Constantin Kaplinsky <const@tightvnc.com> | 2008-06-21 11:41:42 +0000 |
commit | d2af082ed28d28c381fd00ae6211802691a0d45e (patch) | |
tree | 542214862a450d4e303f09626d86464e9375699a /java/src/com/tightvnc | |
parent | d3a2df1f9777a3d02819a40ef2e4b18604e61649 (diff) | |
download | tigervnc-d2af082ed28d28c381fd00ae6211802691a0d45e.tar.gz tigervnc-d2af082ed28d28c381fd00ae6211802691a0d45e.zip |
[Refactoring] Added a separate function to connect to a byte range via HTTP using the Range header.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@2610 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'java/src/com/tightvnc')
-rw-r--r-- | java/src/com/tightvnc/rfbplayer/FbsConnection.java | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/java/src/com/tightvnc/rfbplayer/FbsConnection.java b/java/src/com/tightvnc/rfbplayer/FbsConnection.java index 20b01544..d952f4fe 100644 --- a/java/src/com/tightvnc/rfbplayer/FbsConnection.java +++ b/java/src/com/tightvnc/rfbplayer/FbsConnection.java @@ -199,20 +199,15 @@ public class FbsConnection { } // Prepare URLConnection to the right part of the .fbk file. - URLConnection fbkConn = fbkURL.openConnection(); - long firstByteOffset = entryPoint.key_fpos; - long lastByteOffset = entryPoint.key_fpos + entryPoint.key_size - 1; - String rangeSpec = "bytes=" + firstByteOffset + "-" + lastByteOffset; - System.err.println("Range: " + rangeSpec); - fbkConn.setRequestProperty("Range", rangeSpec); - fbkConn.connect(); - DataInputStream is = new DataInputStream(fbkConn.getInputStream()); + InputStream is = + openByteRange(fbkURL, entryPoint.key_fpos, entryPoint.key_size); + DataInputStream dis = new DataInputStream(is); // Load keyframe data from the .fbk file. - int keyDataSize = is.readInt(); + int keyDataSize = dis.readInt(); byte[] keyData = new byte[keyDataSize]; - is.readFully(keyData); - is.close(); + dis.readFully(keyData); + dis.close(); // Open the FBS stream. URLConnection fbsConn = fbsURL.openConnection(); @@ -221,4 +216,15 @@ public class FbsConnection { keyData, entryPoint.fbs_skip); } + private InputStream openByteRange(URL url, long offset, long length) + throws IOException { + URLConnection conn = url.openConnection(); + long lastByteOffset = offset + length - 1; + String rangeSpec = "bytes=" + offset + "-" + lastByteOffset; + System.err.println("Range: " + rangeSpec); + conn.setRequestProperty("Range", rangeSpec); + conn.connect(); + return conn.getInputStream(); + } + } |