Package aQute.libg.cafs
Class CAFS
java.lang.Object
aQute.libg.cafs.CAFS
- All Implemented Interfaces:
Closeable
,AutoCloseable
,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 Details
-
CAFS
Constructor for a Content Addressable File Store- Parameters:
home
-create
-- Throws:
Exception
-
-
Method Details
-
write
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
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
- Throws:
Exception
-
reindex
- Throws:
Exception
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-
iterator
-
isEmpty
- Throws:
IOException
-