aQute.libg.cafs
Class CAFS

java.lang.Object
  extended by aQute.libg.cafs.CAFS
All Implemented Interfaces:
Closeable, Iterable<SHA1>

public class CAFS
extends Object
implements Closeable, Iterable<SHA1>

CAFS implements a SHA-1 based file store. The basic idea is that every file in the universe has a unique SHA-1. Hard to believe but people smarter than me have come to that conclusion. This class maintains a compressed store of SHA-1 identified files. So if you have the SHA-1, you can get the contents. This makes it easy to store a SHA-1 instead of the whole file or maintain a naming scheme. An added advantage is that it is always easy to verify you get the right stuff. The SHA-1 Content Addressable File Store is the core underlying idea in Git.


Constructor Summary
CAFS(File home, boolean create)
          Constructor for a Content Addressable File Store
 
Method Summary
 void close()
           
 boolean exists(byte[] sha1)
           
 boolean isEmpty()
           
 Iterator<SHA1> iterator()
           
 InputStream read(SHA1 sha1)
          Read the contents of a sha 1 key.
 void reindex()
           
 SHA1 write(InputStream in)
          Store an input stream in the CAFS while calculating and returning the SHA-1 code.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CAFS

public CAFS(File home,
            boolean create)
     throws Exception
Constructor for a Content Addressable File Store

Parameters:
home -
create -
Throws:
Exception
Method Detail

write

public SHA1 write(InputStream in)
           throws Exception
Store an input stream in the CAFS while calculating and returning the SHA-1 code.

Parameters:
in - The input stream to store.
Returns:
The SHA-1 code.
Throws:
Exception - if anything goes wrong

read

public InputStream read(SHA1 sha1)
                 throws Exception
Read the contents of a sha 1 key.

Parameters:
sha1 - The key
Returns:
An Input Stream on the content or null of key not found
Throws:
Exception

exists

public boolean exists(byte[] sha1)
               throws Exception
Throws:
Exception

reindex

public void reindex()
             throws Exception
Throws:
Exception

close

public void close()
           throws IOException
Specified by:
close in interface Closeable
Throws:
IOException

iterator

public Iterator<SHA1> iterator()
Specified by:
iterator in interface Iterable<SHA1>

isEmpty

public boolean isEmpty()
                throws IOException
Throws:
IOException


Copyright © 2014 aQute SARL. All rights reserved.