Package ome.io.nio

Class PixelsService

  • All Implemented Interfaces:
    org.springframework.beans.factory.Aware, org.springframework.context.ApplicationEventPublisherAware

    public class PixelsService
    extends AbstractFileSystemService
    implements org.springframework.context.ApplicationEventPublisherAware
    Since:
    OMERO-Beta1.0
    • Field Detail

      • PYRAMID_SUFFIX

        public static final java.lang.String PYRAMID_SUFFIX
        Suffix for an the image pyramid of a given pixels set.
        See Also:
        Constant Field Values
      • NULL_PLANE_SIZE

        public static final int NULL_PLANE_SIZE
        Null plane size constant.
        See Also:
        Constant Field Values
      • NULL_PLANE

        public static final byte[] NULL_PLANE
        Null plane byte array.
      • resolver

        protected FilePathResolver resolver
        Resolver of archived original file paths for pixels sets.
      • backOff

        protected final BackOff backOff
        BackOff implementation for calculating MissingPyramidExceptions
      • sizes

        protected final TileSizes sizes
        TileSizes implementation for default values
      • memoizerDirectory

        protected final java.io.File memoizerDirectory
        Location where cached data from the Memoizer should be stored.
      • memoizerDirectoryLocalRW

        protected java.io.File memoizerDirectoryLocalRW
        For read-only servers, this directory is a local read-write directory for storing memo files. May be null.
      • memoizerWait

        protected final long memoizerWait
        Time in ms. which setId must take before a file is memoized
      • nullPlane

        @Deprecated
        public static final byte[] nullPlane
        Deprecated.
        in favor of NULL_PLANE
        Null plane byte array.
    • Method Detail

      • setMetrics

        public void setMetrics​(ome.system.metrics.Metrics metrics)
      • setReaderSecurityCheck

        public void setReaderSecurityCheck​(ReaderSecurityCheck check)
        Parameters:
        check - the used files check to apply after subsequent IFormatHandler.setId(String)
      • getMemoizerWait

        public long getMemoizerWait()
      • getMemoizerDirectory

        public java.io.File getMemoizerDirectory()
      • setApplicationEventPublisher

        public void setApplicationEventPublisher​(org.springframework.context.ApplicationEventPublisher pub)
        Specified by:
        setApplicationEventPublisher in interface org.springframework.context.ApplicationEventPublisherAware
      • setFilePathResolver

        public void setFilePathResolver​(FilePathResolver resolver)
      • setMemoizerDirectoryLocal

        public void setMemoizerDirectoryLocal​(java.lang.String path)
      • createPixelBuffer

        public PixelBuffer createPixelBuffer​(ome.model.core.Pixels pixels)
                                      throws java.io.IOException
        Creates a PixelBuffer for a given pixels set.
        Parameters:
        pixels - Pixels set to create a pixel buffer for.
        Returns:
        Allocated pixel buffer ready to be used.
        Throws:
        java.io.IOException - If there is an I/O error creating the pixel buffer backing file.
      • makePyramid

        public ome.model.stats.StatsInfo[] makePyramid​(ome.model.core.Pixels pixels)
        Creates a pixels pyramid for a given set of pixels. If the pyramid file already exists, then a DEBUG message is logged and this method returns.
        Parameters:
        pixels - Pixels set to retrieve a pixel buffer for.
        Since:
        OMERO-Beta4.3
      • getPixelBuffer

        @Deprecated
        public PixelBuffer getPixelBuffer​(ome.model.core.Pixels pixels)
        Deprecated.
        In the future callers should use the more descriptive getPixelBuffer(Pixels, boolean).
        Returns a pixel buffer for a given set of pixels. Either a proprietary ROMIO pixel buffer or a specific pixel buffer implementation.
        Parameters:
        pixels - Pixels set to retrieve a pixel buffer for.
        Returns:
        A pixel buffer instance. NOTE: The pixel buffer is initialized as read-write.
        Since:
        OMERO-Beta4.3
        See Also:
        getPixelBuffer(Pixels, boolean)
      • getPixelBuffer

        public PixelBuffer getPixelBuffer​(ome.model.core.Pixels pixels,
                                          boolean write)
        Returns a pixel buffer for a given set of pixels. Either a proprietary ROMIO pixel buffer or a specific pixel buffer implementation.
        Parameters:
        pixels - Pixels set to retrieve a pixel buffer for.
        write - Whether or not to open the pixel buffer as read-write. true opens as read-write, false opens as read-only.
        Returns:
        A pixel buffer instance.
        Since:
        OMERO-Beta4.3
      • _getPixelBuffer

        public PixelBuffer _getPixelBuffer​(ome.model.core.Pixels pixels,
                                           boolean write)
      • requiresPixelsPyramid

        public boolean requiresPixelsPyramid​(ome.model.core.Pixels pixels)
        Returns whether a pyramid should be used for the given Pixels. This usually implies that this is a "Big image" and therefore will need tiling.
        Parameters:
        pixels -
        Returns:
        true if a pyramid should be used, false otherwise
      • getOriginalFilePath

        protected java.lang.String getOriginalFilePath​(ome.model.core.Pixels pixels)
        Retrieves the original file path for a given set of pixels.
        Parameters:
        pixels - Set of pixels to return an orignal file path for.
        Returns:
        The original file path or null if the original file path could not be located or the resolver has not been set.
      • getSeries

        protected int getSeries​(ome.model.core.Pixels pixels)
        Retrieves the series for a given set of pixels.
        Parameters:
        pixels - Set of pixels to return the series for.
        Returns:
        The series as specified by the pixels parameters or 0 (the first series).
      • handleMissingStatsInfo

        protected void handleMissingStatsInfo​(ome.model.core.Pixels pixels)
        If the outer loop should continue, this method returns successfully; otherwise it throws a MissingPyramidException.
        Parameters:
        pixels -
      • handleMissingPyramid

        protected void handleMissingPyramid​(ome.model.core.Pixels pixels,
                                            java.lang.String pixelsPyramidFilePath)
        If the outer loop should continue, this method returns successfully; otherwise it throws a MissingPyramidException.
        Parameters:
        pixels -
        pixelsPyramidFilePath -
        Throws:
        ome.conditions.MissingPyramidException
      • createMinMaxBfPixelBuffer

        protected BfPixelBuffer createMinMaxBfPixelBuffer​(java.lang.String filePath,
                                                          int series,
                                                          loci.formats.meta.IMinMaxStore store)
        Helper method to properly log any exceptions raised by Bio-Formats and add a min/max calculator wrapper to the reader stack.
        Parameters:
        filePath - Non-null.
        series - series to use
        store - Min/max store to use with the min/max calculator.
      • getBfReader

        public loci.formats.IFormatReader getBfReader​(ome.model.core.Pixels pixels)
                                               throws loci.formats.FormatException,
                                                      java.io.IOException
        Short-cut in the FS case where we know that we are dealing with a FS-lite file, and want to retrieve the actual file as opposed to a pyramid or anything else. This may be used to access the original metadata.
        Throws:
        loci.formats.FormatException
        java.io.IOException
      • createBfReader

        protected loci.formats.IFormatReader createBfReader()
        Create an IFormatReader with the appropriate ReaderWrapper instances and IFormatReader.setFlattenedResolutions(boolean) set to false.
      • createBfPixelBuffer

        protected BfPixelBuffer createBfPixelBuffer​(java.lang.String filePath,
                                                    int series)
        Helper method to properly log any exceptions raised by Bio-Formats.
        Parameters:
        filePath - Non-null.
        series - series to use
        Returns:
        the initialized BfPixelBuffer
      • createPyramidPixelBuffer

        protected BfPyramidPixelBuffer createPyramidPixelBuffer​(ome.model.core.Pixels pixels,
                                                                java.lang.String filePath,
                                                                boolean write)
        Helper method to properly log any exceptions raised by Bio-Formats.
        Parameters:
        pixels - passed to BfPixelBuffer
        filePath - Non-null.
        Returns:
        the initialized BfPyramidPixelBuffer
      • createRomioPixelBuffer

        protected PixelBuffer createRomioPixelBuffer​(java.lang.String pixelsFilePath,
                                                     ome.model.core.Pixels pixels,
                                                     boolean allowModification)
        Helper method to properlty create a RomioPixelBuffer.
        Parameters:
        pixelsFilePath -
        pixels -
        allowModification -
      • removePixels

        public void removePixels​(java.util.List<java.lang.Long> pixelIds)
        Removes files from data repository based on a parameterized List of Long pixels ids
        Parameters:
        pixelIds - Long file keys to be deleted
        Throws:
        ome.conditions.ResourceError - If deletion fails.