Provide close methods to clean up resources used while creating AlignmentContexts from BAM file regions. Allows utilization of CoveredLocusView via the API

Signed-off-by: David Roazen <droazen@broadinstitute.org>
This commit is contained in:
chapmanb 2013-08-12 14:36:57 -04:00 committed by David Roazen
parent 5e539bb11b
commit 2f5064dd1d
4 changed files with 22 additions and 0 deletions

View File

@ -246,6 +246,14 @@ public class BAMScheduler implements Iterator<FilePointer> {
*/
private PeekableIterator<BAMScheduleEntry> bamScheduleIterator = null;
/**
* Clean up underlying BAMSchedule file handles.
*/
public void close() {
if(bamScheduleIterator != null)
bamScheduleIterator.close();
}
/**
* Get the next overlapping tree of bins associated with the given BAM file.
* @param currentLocus The actual locus for which to check overlap.

View File

@ -62,6 +62,9 @@ public class IntervalSharder implements Iterator<FilePointer> {
wrappedIterator = new PeekableIterator<FilePointer>(scheduler);
this.parser = parser;
}
public void close() {
wrappedIterator.close();
}
public boolean hasNext() {
return wrappedIterator.hasNext();

View File

@ -352,6 +352,14 @@ public class SAMDataSource {
resourcePool.releaseReaders(readers);
}
public void close() {
SAMReaders readers = resourcePool.getAvailableReaders();
for(SAMReaderID readerID: readerIDs) {
SAMFileReader reader = readers.getReader(readerID);
reader.close();
}
}
/**
* Returns Reads data structure containing information about the reads data sources placed in this pool as well as
* information about how they are downsampled, sorted, and filtered

View File

@ -43,4 +43,7 @@ public abstract class ShardBalancer implements Iterable<Shard> {
this.filePointers = new PeekableIterator<FilePointer>(filePointers);
this.parser = parser;
}
public void close() {
this.filePointers.close();
}
}