@@ -37,9 +37,7 @@ import Control.DeepSeq (NFData (..))
3737import Control.Monad.Class.MonadThrow
3838import Control.Monad.Primitive (PrimMonad , PrimState )
3939import qualified Control.RefCount as RC
40- import Data.Primitive.ByteArray as P
4140import Data.Primitive.PrimVar as P
42- import qualified Data.Vector.Primitive as VP
4341import Data.Word (Word64 )
4442import Database.LSMTree.Internal.BlobFile hiding (removeReference )
4543import qualified Database.LSMTree.Internal.BlobFile as BlobFile
@@ -48,7 +46,6 @@ import Database.LSMTree.Internal.BlobRef (RawBlobRef (..),
4846import Database.LSMTree.Internal.Serialise
4947import qualified System.FS.API as FS
5048import System.FS.API (HasFS )
51- import qualified System.Posix.Types as FS (ByteCount )
5249
5350-- | A single 'WriteBufferBlobs' may be shared between multiple tables.
5451-- As a consequence of being shared, the management of the shared state has to
@@ -148,28 +145,12 @@ addBlob :: (PrimMonad m, MonadThrow m)
148145addBlob fs WriteBufferBlobs {blobFile, blobFilePointer} blob = do
149146 let blobsize = sizeofBlob blob
150147 bloboffset <- updateFilePointer blobFilePointer blobsize
151- writeBlobAtOffset fs (blobFileHandle blobFile) blob bloboffset
148+ BlobFile. writeBlob fs blobFile blob bloboffset
152149 return BlobSpan {
153150 blobSpanOffset = bloboffset,
154151 blobSpanSize = fromIntegral blobsize
155152 }
156153
157- {-# SPECIALISE writeBlobAtOffset :: HasFS IO h -> FS.Handle h -> SerialisedBlob -> Word64 -> IO () #-}
158- writeBlobAtOffset :: (PrimMonad m , MonadThrow m )
159- => HasFS m h
160- -> FS. Handle h
161- -> SerialisedBlob
162- -> Word64
163- -> m ()
164- writeBlobAtOffset fs h (SerialisedBlob' (VP. Vector boff blen ba)) off = do
165- mba <- P. unsafeThawByteArray ba
166- _ <- FS. hPutBufExactlyAt
167- fs h mba
168- (FS. BufferOffset boff)
169- (fromIntegral blen :: FS. ByteCount )
170- (FS. AbsOffset off)
171- return ()
172-
173154-- | Helper function to make a 'RawBlobRef' that points into a
174155-- 'WriteBufferBlobs'.
175156mkRawBlobRef :: WriteBufferBlobs m h
0 commit comments