ostore.dataobj
Class RabinFingerprint

java.lang.Object
  |
  +--ostore.dataobj.RabinFingerprint

public class RabinFingerprint
extends Object

Given an InputStream, creates blocks delimited by markers chosen for their Rabin fingerprint. See the paper, "A Protocol-Independent Technique for Eliminating Redundant Network Traffic" by N. Spring and D. Wetherall in SIGCOMM 2000.

Version:
$Id: RabinFingerprint.java,v 1.3 2002/11/18 21:14:04 srhea Exp $
Author:
Sean C. Rhea

Nested Class Summary
protected static class RabinFingerprint.BufEl
           
 
Field Summary
protected  boolean _all_data_added
           
protected  RabinFingerprint.BufEl _head
           
protected  int _head_idx
           
protected  int _rf
           
protected  int[] _t
           
protected  int _t_idx
           
protected  RabinFingerprint.BufEl _tail
           
protected  int BETA
           
protected  int count
          Get the next chunk.
protected  int FRACTION
           
protected  int M
           
 int MAX_SZ
           
 int MIN_SZ
           
protected  int P
           
protected  int[] P_UP_BETA_TIMES_T
           
 
Constructor Summary
RabinFingerprint()
          Computes some constants to be used later.
 
Method Summary
 void add_data(BufferElement buf)
           
static void main(String[] args)
           
 int next_chunk(byte[] result, int[] offset)
           
 void reset()
          Start reading out of a new input stream.
 void set_all_data_added()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MIN_SZ

public final int MIN_SZ
See Also:
Constant Field Values

MAX_SZ

public final int MAX_SZ
See Also:
Constant Field Values

P

protected int P

P_UP_BETA_TIMES_T

protected int[] P_UP_BETA_TIMES_T

M

protected int M

BETA

protected int BETA

FRACTION

protected int FRACTION

_t

protected int[] _t

_t_idx

protected int _t_idx

_rf

protected int _rf

_head

protected RabinFingerprint.BufEl _head

_tail

protected RabinFingerprint.BufEl _tail

_head_idx

protected int _head_idx

_all_data_added

protected boolean _all_data_added

count

protected int count
Get the next chunk. This function returns the number of bytes in the next chunk, which is written into the array result starting at the index offset. If zero is returned, then all of the input has been consumed.

Constructor Detail

RabinFingerprint

public RabinFingerprint()
Computes some constants to be used later.

Method Detail

add_data

public void add_data(BufferElement buf)

set_all_data_added

public void set_all_data_added()

reset

public void reset()
Start reading out of a new input stream.


next_chunk

public int next_chunk(byte[] result,
                      int[] offset)

main

public static void main(String[] args)
                 throws Exception
Exception