Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | None |
Language | Haskell2010 |
GI.GLib.Structs.MappedFile
Description
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)
- 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.
Constructors
MappedFile (ManagedPtr MappedFile) |
Instances
Eq MappedFile Source # | |
Defined in GI.GLib.Structs.MappedFile | |
IsGValue MappedFile Source # | Convert |
Defined in GI.GLib.Structs.MappedFile | |
ManagedPtrNewtype MappedFile Source # | |
Defined in GI.GLib.Structs.MappedFile Methods | |
TypedObject MappedFile Source # | |
Defined in GI.GLib.Structs.MappedFile | |
GBoxed MappedFile Source # | |
Defined in GI.GLib.Structs.MappedFile | |
HasParentTypes MappedFile Source # | |
Defined in GI.GLib.Structs.MappedFile | |
type ParentTypes MappedFile Source # | |
Defined in GI.GLib.Structs.MappedFile |
Methods
Overloaded methods
free
Arguments
:: (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
Arguments
:: (HasCallStack, MonadIO m) | |
=> MappedFile |
|
-> m Bytes | Returns: A newly allocated |
getContents
mappedFileGetContents Source #
Arguments
:: (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
Arguments
:: (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
Arguments
:: (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
Arguments
:: (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
Arguments
:: (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
Arguments
:: (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