Class FSOutputStream
java.lang.Object
java.io.OutputStream
org.tmatesoft.svn.core.internal.io.fs.FSOutputStream
- All Implemented Interfaces:
java.io.Closeable,java.io.Flushable,java.lang.AutoCloseable,ISVNDeltaConsumer
- Version:
- 1.3
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate SVNDeltaGeneratorprivate longprivate booleanprivate booleanprivate java.security.MessageDigestprivate longprivate longprivate FSRevisionNodeprivate java.security.MessageDigestprivate longprivate java.io.InputStreamprivate java.io.Fileprivate CountingOutputStreamprivate java.io.ByteArrayOutputStreamprivate FSWriteLockprivate FSTransactionRootstatic final intstatic final int -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateFSOutputStream(FSRevisionNode revNode, CountingOutputStream targetFileOS, java.io.File targetFile, java.io.InputStream source, long deltaStart, long repSize, long repOffset, FSTransactionRoot txnRoot, boolean compress, FSWriteLock txnLock) -
Method Summary
Modifier and TypeMethodDescriptionvoidapplyTextDelta(java.lang.String path, java.lang.String baseChecksum) Starts applying text delta(s) to an opened file.private voidcheckRepresentation(FSFS fsfs, FSRepresentation representation, java.lang.Object hint) voidclose()voidstatic java.io.OutputStreamcreateStream(FSRevisionNode revNode, FSTransactionRoot txnRoot, java.io.OutputStream dstStream, boolean compress) private FSRepresentationgetSharedRepresentation(FSFS fsfs, FSRepresentation representation, java.util.Map<java.lang.String, FSRepresentation> representationsMap) private FSP2LEntrylookupEntry(java.util.List<FSP2LEntry> entries, long offset, java.lang.Object hint) private FSP2LEntrylookupP2LEntry(FSFile revFile, long revision, long offset) private static java.io.FilepathTxnSha1(FSFS fsfs, FSRepresentation representation, java.lang.String txnId) private voidreset(FSRevisionNode revNode, CountingOutputStream targetFileOS, java.io.File targetFile, java.io.InputStream source, long deltaStart, long repSize, long repOffset, FSTransactionRoot txnRoot, FSWriteLock txnLock) private static voidstoreSha1RepMapping(FSFS fsfs, FSRepresentation representation) java.io.OutputStreamtextDeltaChunk(java.lang.String path, SVNDiffWindow diffWindow) Collects a next delta chunk.voidtextDeltaEnd(java.lang.String path) Finalizes collecting text delta(s).voidwrite(byte[] b) voidwrite(byte[] b, int off, int len) voidwrite(int b) Methods inherited from class java.io.OutputStream
flush, nullOutputStreamMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
SVN_DELTA_WINDOW_SIZE
public static final int SVN_DELTA_WINDOW_SIZE- See Also:
-
WRITE_BUFFER_SIZE
public static final int WRITE_BUFFER_SIZE- See Also:
-
isHeaderWritten
private boolean isHeaderWritten -
myTargetFileOS
-
myTargetFile
private java.io.File myTargetFile -
myDeltaStart
private long myDeltaStart -
myRepSize
private long myRepSize -
myRepOffset
private long myRepOffset -
mySourceStream
private java.io.InputStream mySourceStream -
myDeltaGenerator
-
myRevNode
-
myMD5Digest
private java.security.MessageDigest myMD5Digest -
mySHA1Digest
private java.security.MessageDigest mySHA1Digest -
myTxnRoot
-
mySourceOffset
private long mySourceOffset -
myTextBuffer
private java.io.ByteArrayOutputStream myTextBuffer -
myIsClosed
private boolean myIsClosed -
myIsCompress
private boolean myIsCompress -
myTxnLock
-
-
Constructor Details
-
FSOutputStream
private FSOutputStream(FSRevisionNode revNode, CountingOutputStream targetFileOS, java.io.File targetFile, java.io.InputStream source, long deltaStart, long repSize, long repOffset, FSTransactionRoot txnRoot, boolean compress, FSWriteLock txnLock) throws SVNException - Throws:
SVNException
-
-
Method Details
-
reset
private void reset(FSRevisionNode revNode, CountingOutputStream targetFileOS, java.io.File targetFile, java.io.InputStream source, long deltaStart, long repSize, long repOffset, FSTransactionRoot txnRoot, FSWriteLock txnLock) -
createStream
public static java.io.OutputStream createStream(FSRevisionNode revNode, FSTransactionRoot txnRoot, java.io.OutputStream dstStream, boolean compress) throws SVNException - Throws:
SVNException
-
write
public void write(int b) throws java.io.IOException - Specified by:
writein classjava.io.OutputStream- Throws:
java.io.IOException
-
write
public void write(byte[] b) throws java.io.IOException - Overrides:
writein classjava.io.OutputStream- Throws:
java.io.IOException
-
write
public void write(byte[] b, int off, int len) throws java.io.IOException - Overrides:
writein classjava.io.OutputStream- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.OutputStream- Throws:
java.io.IOException
-
closeStreams
public void closeStreams() throws java.io.IOException- Throws:
java.io.IOException
-
getRevisionNode
-
textDeltaChunk
public java.io.OutputStream textDeltaChunk(java.lang.String path, SVNDiffWindow diffWindow) throws SVNException Description copied from interface:ISVNDeltaConsumerCollects a next delta chunk. The return type is nomore relevant and is left only for backward compatibility. So, the return value may be just null. Otherwise if it's not null, the stream will be immediately closed.If there are more than one windows for the file, this method is called several times.
- Specified by:
textDeltaChunkin interfaceISVNDeltaConsumer- Parameters:
path- a file path relative to the edit root directorydiffWindow- a next diff window- Returns:
- an output stream
- Throws:
SVNException
-
textDeltaEnd
Description copied from interface:ISVNDeltaConsumerFinalizes collecting text delta(s).- Specified by:
textDeltaEndin interfaceISVNDeltaConsumer- Parameters:
path- a file path relative to the edit root directory- Throws:
SVNException
-
applyTextDelta
public void applyTextDelta(java.lang.String path, java.lang.String baseChecksum) throws SVNException Description copied from interface:ISVNDeltaConsumerStarts applying text delta(s) to an opened file.- Specified by:
applyTextDeltain interfaceISVNDeltaConsumer- Parameters:
path- a file path relative to the edit root directorybaseChecksum- an MD5 checksum for the base file contents (before the file is changed)- Throws:
SVNException- if the calculated base file checksum didn't match the expectedbaseChecksum
-
checkRepresentation
private void checkRepresentation(FSFS fsfs, FSRepresentation representation, java.lang.Object hint) throws SVNException - Throws:
SVNException
-
lookupP2LEntry
- Throws:
SVNException
-
lookupEntry
private FSP2LEntry lookupEntry(java.util.List<FSP2LEntry> entries, long offset, java.lang.Object hint) -
storeSha1RepMapping
private static void storeSha1RepMapping(FSFS fsfs, FSRepresentation representation) throws SVNException - Throws:
SVNException
-
pathTxnSha1
private static java.io.File pathTxnSha1(FSFS fsfs, FSRepresentation representation, java.lang.String txnId)
-