public abstract class AbstractIOServiceProvider extends java.lang.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 RandomAccessFile |
raf
Subclasses that use AbstractIOServiceProvider.open(...) or .close()
should use this (instead of their own private variable).
|
| Constructor and Description |
|---|
AbstractIOServiceProvider() |
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Close the file.
|
java.lang.String |
getDetailInfo()
Show debug / underlying implementation details
|
java.lang.String |
getFileTypeVersion()
Get the version of this file type.
|
StructureDataIterator |
getStructureIterator(Structure s,
int bufferSize) |
void |
open(RandomAccessFile raf,
NetcdfFile ncfile,
CancelTask cancelTask)
Open existing file, and populate ncfile with it.
|
Array |
readSection(ParsedSectionSpec cer)
Allows reading sections of nested variables
|
long |
readToByteChannel(Variable v2,
Section section,
java.nio.channels.WritableByteChannel channel)
Read data from a top level Variable and send data to a WritableByteChannel.
|
java.lang.Object |
sendIospMessage(java.lang.Object message)
A way to communicate arbitrary information to an iosp.
|
boolean |
sync()
Update the metadata in the NetcdfFile if the underlying dataset has changed.
|
boolean |
syncExtend()
Extend the NetcdfFile if the underlying dataset has changed
in a way that is compatible with the current metadata.
|
java.lang.String |
toStringDebug(java.lang.Object o)
Debug info for this object.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetFileTypeDescription, getFileTypeId, isValidFile, readDataprotected RandomAccessFile raf
public void open(RandomAccessFile raf, NetcdfFile ncfile, CancelTask cancelTask) throws java.io.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.java.io.IOException - if read errorpublic void close()
throws java.io.IOException
IOServiceProviderclose in interface IOServiceProviderjava.io.IOException - if read errorpublic long readToByteChannel(Variable v2, Section section, java.nio.channels.WritableByteChannel channel) throws java.io.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 WritableByteChanneljava.io.IOException - if read errorInvalidRangeException - if invalid sectionpublic Array readSection(ParsedSectionSpec cer) throws java.io.IOException, InvalidRangeException
IOServiceProviderreadSection in interface IOServiceProvidercer - section specification : what data is wantedjava.io.IOException - on read errorInvalidRangeException - if section spec is invalidpublic StructureDataIterator getStructureIterator(Structure s, int bufferSize) throws java.io.IOException
getStructureIterator in interface IOServiceProviderjava.io.IOExceptionpublic java.lang.Object sendIospMessage(java.lang.Object message)
IOServiceProvidersendIospMessage in interface IOServiceProvidermessage - opaque message.public boolean syncExtend()
throws java.io.IOException
IOServiceProvidersyncExtend in interface IOServiceProviderjava.io.IOException - if a read error occured when accessing the underlying dataset.public boolean sync()
throws java.io.IOException
IOServiceProvidersync in interface IOServiceProviderjava.io.IOException - if a read error occured when accessing the underlying dataset.public java.lang.String toStringDebug(java.lang.Object o)
IOServiceProvidertoStringDebug in interface IOServiceProvidero - which objectpublic java.lang.String getDetailInfo()
IOServiceProvidergetDetailInfo in interface IOServiceProviderpublic java.lang.String getFileTypeVersion()
IOServiceProvidergetFileTypeVersion in interface IOServiceProvider