Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (inaki@blueleaf.cc) |
Safe Haskell | None |
Language | Haskell2010 |
The MappedFile
represents a file mapping created with
mappedFileNew
. It has only private members and should
not be accessed directly.
Synopsis
- newtype MappedFile = MappedFile (ManagedPtr MappedFile)
- noMappedFile :: Maybe MappedFile
- mappedFileFree :: (HasCallStack, MonadIO m) => MappedFile -> m ()
- mappedFileGetBytes :: (HasCallStack, MonadIO m) => MappedFile -> m Bytes
- mappedFileGetContents :: (HasCallStack, MonadIO m) => MappedFile -> m Text
- mappedFileGetLength :: (HasCallStack, MonadIO m) => MappedFile -> m Word64
- mappedFileNew :: (HasCallStack, MonadIO m) => [Char] -> Bool -> m MappedFile
- mappedFileNewFromFd :: (HasCallStack, MonadIO m) => Int32 -> Bool -> m MappedFile
- mappedFileRef :: (HasCallStack, MonadIO m) => MappedFile -> m MappedFile
- mappedFileUnref :: (HasCallStack, MonadIO m) => MappedFile -> m ()
Exported types
newtype MappedFile Source #
Memory-managed wrapper type.
Instances
BoxedObject MappedFile Source # | |
Defined in GI.GLib.Structs.MappedFile boxedType :: MappedFile -> IO GType # |
noMappedFile :: Maybe MappedFile Source #
A convenience alias for Nothing
:: Maybe
MappedFile
.
Methods
free
:: (HasCallStack, MonadIO m) | |
=> MappedFile |
|
-> m () |
Deprecated: (Since version 2.22)Use mappedFileUnref
instead.
This call existed before MappedFile
had refcounting and is currently
exactly the same as mappedFileUnref
.
Since: 2.8
getBytes
:: (HasCallStack, MonadIO m) | |
=> MappedFile |
|
-> m Bytes | Returns: A newly allocated |
getContents
mappedFileGetContents Source #
:: (HasCallStack, MonadIO m) | |
=> MappedFile |
|
-> m Text | Returns: the contents of |
Returns the contents of a MappedFile
.
Note that the contents may not be zero-terminated,
even if the MappedFile
is backed by a text file.
If the file is empty then Nothing
is returned.
Since: 2.8
getLength
:: (HasCallStack, MonadIO m) | |
=> MappedFile |
|
-> m Word64 | Returns: the length of the contents of |
Returns the length of the contents of a MappedFile
.
Since: 2.8
new
:: (HasCallStack, MonadIO m) | |
=> [Char] |
|
-> Bool |
|
-> m MappedFile | Returns: a newly allocated |
Maps a file into memory. On UNIX, this is using the mmap()
function.
If writable
is True
, the mapped buffer may be modified, otherwise
it is an error to modify the mapped buffer. Modifications to the buffer
are not visible to other processes mapping the same file, and are not
written back to the file.
Note that modifications of the underlying file might affect the contents
of the MappedFile
. Therefore, mapping should only be used if the file
will not be modified, or if all modifications of the file are done
atomically (e.g. using fileSetContents
).
If filename
is the name of an empty, regular file, the function
will successfully return an empty MappedFile
. In other cases of
size 0 (e.g. device files such as /dev/null), error
will be set
to the FileError
value G_FILE_ERROR_INVAL
.
Since: 2.8
newFromFd
:: (HasCallStack, MonadIO m) | |
=> Int32 |
|
-> Bool |
|
-> m MappedFile | Returns: a newly allocated |
Maps a file into memory. On UNIX, this is using the mmap()
function.
If writable
is True
, the mapped buffer may be modified, otherwise
it is an error to modify the mapped buffer. Modifications to the buffer
are not visible to other processes mapping the same file, and are not
written back to the file.
Note that modifications of the underlying file might affect the contents
of the MappedFile
. Therefore, mapping should only be used if the file
will not be modified, or if all modifications of the file are done
atomically (e.g. using fileSetContents
).
Since: 2.32
ref
:: (HasCallStack, MonadIO m) | |
=> MappedFile |
|
-> m MappedFile | Returns: the passed in |
Increments the reference count of file
by one. It is safe to call
this function from any thread.
Since: 2.22
unref
:: (HasCallStack, MonadIO m) | |
=> MappedFile |
|
-> m () |
Decrements the reference count of file
by one. If the reference count
drops to 0, unmaps the buffer of file
and frees it.
It is safe to call this function from any thread.
Since 2.22