/// <summary>
        /// encoded cache multiplex -> encoded cache -> local resource fetch.
        /// </summary>
        private IProducer <CloseableReference <IPooledByteBuffer> > GetEncodedLocalResourceFetchSequence()
        {
            lock (_gate)
            {
                if (_encodedLocalResourceFetchSequence == null)
                {
                    LocalResourceFetchProducer localResourceFetchProducer =
                        _producerFactory.NewLocalResourceFetchProducer();

                    _encodedLocalResourceFetchSequence = new RemoveImageTransformMetaDataProducer(
                        NewEncodedCacheMultiplexToTranscodeSequence(localResourceFetchProducer));
                }

                return(_encodedLocalResourceFetchSequence);
            }
        }
Exemple #2
0
        /// <summary>
        /// bitmap cache get ->
        /// background thread hand-off -> multiplex -> bitmap cache ->
        /// decode -> branch on separate images
        ///   -> exif resize and rotate -> exif thumbnail creation
        ///   -> local image resize and rotate -> add meta data producer
        ///   -> multiplex -> encoded cache -> (webp transcode)
        ///   -> local resource fetch.
        /// </summary>
        private IProducer <CloseableReference <CloseableImage> > GetLocalResourceFetchSequence()
        {
            lock (_gate)
            {
                if (_localResourceFetchSequence == null)
                {
                    LocalResourceFetchProducer localResourceFetchProducer =
                        _producerFactory.NewLocalResourceFetchProducer();

                    _localResourceFetchSequence =
                        NewBitmapCacheGetToLocalTransformSequence(localResourceFetchProducer);
                }

                return(_localResourceFetchSequence);
            }
        }