You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avalon.apache.org by do...@apache.org on 2001/02/26 14:57:45 UTC
cvs commit: jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/blocks/masterstore ResettableFileInputStream.java File_Persistent_Stream_Repository.java AbstractFileRepository.java
donaldp 01/02/26 05:57:45
Modified: src/java/org/apache/cornerstone/blocks/masterstore
File_Persistent_Stream_Repository.java
AbstractFileRepository.java
Added: src/java/org/apache/cornerstone/blocks/masterstore
ResettableFileInputStream.java
Log:
Moved ResettableFileInputStream to masterstore from avalon CVS.
Revision Changes Path
1.2 +0 -1 jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/blocks/masterstore/File_Persistent_Stream_Repository.java
Index: File_Persistent_Stream_Repository.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/blocks/masterstore/File_Persistent_Stream_Repository.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- File_Persistent_Stream_Repository.java 2001/02/22 07:52:16 1.1
+++ File_Persistent_Stream_Repository.java 2001/02/26 13:57:44 1.2
@@ -14,7 +14,6 @@
import java.util.ArrayList;
import java.util.HashMap;
import org.apache.cornerstone.services.Store;
-import org.apache.avalon.util.io.ResettableFileInputStream;
import org.apache.avalon.util.io.IOUtil;
/**
1.2 +0 -1 jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/blocks/masterstore/AbstractFileRepository.java
Index: AbstractFileRepository.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/blocks/masterstore/AbstractFileRepository.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AbstractFileRepository.java 2001/02/22 07:52:16 1.1
+++ AbstractFileRepository.java 2001/02/26 13:57:44 1.2
@@ -31,7 +31,6 @@
import org.apache.phoenix.BlockContext;
import org.apache.cornerstone.services.Store;
import org.apache.avalon.util.io.ExtensionFileFilter;
-import org.apache.avalon.util.io.ResettableFileInputStream;
/**
* This an abstract class implementing functionality for creating a file-store.
1.1 jakarta-avalon-cornerstone/src/java/org/apache/cornerstone/blocks/masterstore/ResettableFileInputStream.java
Index: ResettableFileInputStream.java
===================================================================
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
package org.apache.cornerstone.blocks.masterstore;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
/**
* @author Federico Barbieri <fe...@apache.org>
*/
public class ResettableFileInputStream
extends InputStream
{
protected static final int DEFAULT_BUFFER_SIZE = 1024;
protected final String m_filename;
protected int m_bufferSize;
protected InputStream m_inputStream;
protected long m_position;
protected long m_mark;
protected boolean m_isMarkSet;
public ResettableFileInputStream( final File file )
throws IOException
{
this( file.getCanonicalPath() );
}
public ResettableFileInputStream( final String filename )
throws IOException
{
this( filename, DEFAULT_BUFFER_SIZE );
}
public ResettableFileInputStream( final String filename, final int bufferSize )
throws IOException
{
m_bufferSize = bufferSize;
m_filename = filename;
m_position = 0;
m_inputStream = newStream();
}
public void mark( final int readLimit )
{
m_isMarkSet = true;
m_mark = m_position;
m_inputStream.mark( readLimit );
}
public boolean markSupported()
{
return true;
}
public void reset()
throws IOException
{
if( !m_isMarkSet )
{
throw new IOException( "Unmarked Stream" );
}
try
{
m_inputStream.reset();
}
catch( final IOException ioe )
{
try
{
m_inputStream.close();
m_inputStream = newStream();
m_inputStream.skip( m_mark );
m_position = m_mark;
}
catch( final Exception e )
{
throw new IOException( "Cannot reset current Stream: " + e.getMessage() );
}
}
}
protected InputStream newStream()
throws IOException
{
return new BufferedInputStream( new FileInputStream( m_filename ), m_bufferSize );
}
public int available()
throws IOException
{
return m_inputStream.available();
}
public void close() throws IOException
{
m_inputStream.close();
}
public int read() throws IOException
{
m_position++;
return m_inputStream.read();
}
public int read( final byte[] bytes, final int offset, final int length )
throws IOException
{
final int count = m_inputStream.read( bytes, offset, length );
m_position += count;
return count;
}
public long skip( final long count )
throws IOException
{
m_position += count;
return m_inputStream.skip( count );
}
}