public abstract class AbstractIOServiceProvider extends Object implements IOServiceProvider
Implementations should make sure to handle the RandomAccessFile properly by doing one of the following:
| Modifier and Type | Field and Description |
|---|---|
protected String |
location |
protected NetcdfFile |
ncfile |
protected RandomAccessFile |
raf
Subclasses that use AbstractIOServiceProvider.open(...) or .close()
should use this (instead of their own private variable).
|
protected int |
rafOrder |
| Constructor and Description |
|---|
AbstractIOServiceProvider() |
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Close the file.
|
String |
getDetailInfo()
Show debug / underlying implementation details
|
String |
getFileTypeVersion()
Get the version of this file type.
|
long |
getLastModified()
Returns the time that the underlying file(s) were last modified.
|
StructureDataIterator |
getStructureIterator(Structure s,
int bufferSize)
Get the structure iterator.
|
void |
open(RandomAccessFile raf,
NetcdfFile ncfile,
CancelTask cancelTask)
Open existing file, and populate ncfile with it.
|
void |
reacquire()
Reacquire any resources like file handles
Used when reactivating in cache.
|
Array |
readSection(ParsedSectionSpec cer)
Allows reading sections of nested variables
|
long |
readToByteChannel(Variable v2,
Section section,
WritableByteChannel channel)
Read data from a top level Variable and send data to a WritableByteChannel.
|
long |
readToOutputStream(Variable v2,
Section section,
OutputStream out) |
void |
release()
Release any system resources like file handles.
|
Object |
sendIospMessage(Object message)
A way to communicate arbitrary information to an iosp.
|
long |
streamToByteChannel(Variable v2,
Section section,
WritableByteChannel channel) |
boolean |
syncExtend()
Extend the NetcdfFile if the underlying dataset has changed
in a way that is compatible with the current metadata.
|
String |
toStringDebug(Object o)
Debug info for this object.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetFileTypeDescription, getFileTypeId, isValidFile, readDataprotected RandomAccessFile raf
protected String location
protected int rafOrder
protected NetcdfFile ncfile
public void open(RandomAccessFile raf, NetcdfFile ncfile, CancelTask cancelTask) throws IOException
IOServiceProvideropen in interface IOServiceProviderraf - the file to work on, it has already passed the isValidFile() test.ncfile - add objects to this empty NetcdfFilecancelTask - used to monitor user cancellation; may be null.IOException - if read errorpublic void close()
throws IOException
IOServiceProviderclose in interface IOServiceProviderIOException - if read errorpublic void release()
throws IOException
IOServiceProviderrelease in interface IOServiceProviderIOExceptionpublic void reacquire()
throws IOException
IOServiceProviderreacquire in interface IOServiceProviderIOExceptionpublic long readToByteChannel(Variable v2, Section section, WritableByteChannel channel) throws IOException, InvalidRangeException
IOServiceProviderreadToByteChannel in interface IOServiceProviderv2 - a top-level Variablesection - the section of data to read.
There must be a Range for each Dimension in the variable, in order.
Note: no nulls allowed. IOSP may not modify.channel - write data to this WritableByteChannelIOException - if read errorInvalidRangeException - if invalid sectionpublic long readToOutputStream(Variable v2, Section section, OutputStream out) throws IOException, InvalidRangeException
readToOutputStream in interface IOServiceProviderIOExceptionInvalidRangeExceptionpublic long streamToByteChannel(Variable v2, Section section, WritableByteChannel channel) throws IOException, InvalidRangeException
streamToByteChannel in interface IOServiceProviderIOExceptionInvalidRangeExceptionpublic Array readSection(ParsedSectionSpec cer) throws IOException, InvalidRangeException
IOServiceProviderreadSection in interface IOServiceProvidercer - section specification : what data is wantedIOException - on read errorInvalidRangeException - if section spec is invalidpublic StructureDataIterator getStructureIterator(Structure s, int bufferSize) throws IOException
IOServiceProvidergetStructureIterator in interface IOServiceProviders - the StructurebufferSize - the buffersizeIOException - if problem reading datapublic Object sendIospMessage(Object message)
IOServiceProvidersendIospMessage in interface IOServiceProvidermessage - opaque message sent to the IOSP object when its opened (not when isValidFile() is called)public boolean syncExtend()
throws IOException
IOServiceProvidersyncExtend in interface IOServiceProviderIOException - if a read error occured when accessing the underlying dataset.public long getLastModified()
FileFactory.long value representing the time the file(s) were last modified or 0L if the
last-modified time couldn't be determined for any reason.public String toStringDebug(Object o)
IOServiceProvidertoStringDebug in interface IOServiceProvidero - which objectpublic String getDetailInfo()
IOServiceProvidergetDetailInfo in interface IOServiceProviderpublic String getFileTypeVersion()
IOServiceProvidergetFileTypeVersion in interface IOServiceProvider