Copyright | Will Thompson and Iñaki García Etxebarria |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | None |
Language | Haskell2010 |
GI.Gio.Objects.MemoryOutputStream
Description
GMemoryOutputStream
is a class for using arbitrary
memory chunks as output for GIO streaming output operations.
As of GLib 2.34, GMemoryOutputStream
trivially implements
PollableOutputStream
: it always polls as ready.
Synopsis
- newtype MemoryOutputStream = MemoryOutputStream (ManagedPtr MemoryOutputStream)
- class (GObject o, IsDescendantOf MemoryOutputStream o) => IsMemoryOutputStream o
- toMemoryOutputStream :: (MonadIO m, IsMemoryOutputStream o) => o -> m MemoryOutputStream
- type family ResolveMemoryOutputStreamMethod (t :: Symbol) o where ...
- data MemoryOutputStreamGetDataMethodInfo
- memoryOutputStreamGetData :: (HasCallStack, MonadIO m, IsMemoryOutputStream a) => a -> m (Ptr ())
- data MemoryOutputStreamGetDataSizeMethodInfo
- memoryOutputStreamGetDataSize :: (HasCallStack, MonadIO m, IsMemoryOutputStream a) => a -> m CSize
- data MemoryOutputStreamGetSizeMethodInfo
- memoryOutputStreamGetSize :: (HasCallStack, MonadIO m, IsMemoryOutputStream a) => a -> m CSize
- memoryOutputStreamNewResizable :: (HasCallStack, MonadIO m) => m MemoryOutputStream
- data MemoryOutputStreamStealAsBytesMethodInfo
- memoryOutputStreamStealAsBytes :: (HasCallStack, MonadIO m, IsMemoryOutputStream a) => a -> m Bytes
- data MemoryOutputStreamStealDataMethodInfo
- memoryOutputStreamStealData :: (HasCallStack, MonadIO m, IsMemoryOutputStream a) => a -> m (Ptr ())
- data MemoryOutputStreamDataPropertyInfo
- constructMemoryOutputStreamData :: (IsMemoryOutputStream o, MonadIO m) => Ptr () -> m (GValueConstruct o)
- getMemoryOutputStreamData :: (MonadIO m, IsMemoryOutputStream o) => o -> m (Ptr ())
- memoryOutputStreamData :: AttrLabelProxy "data"
- data MemoryOutputStreamDataSizePropertyInfo
- getMemoryOutputStreamDataSize :: (MonadIO m, IsMemoryOutputStream o) => o -> m CULong
- memoryOutputStreamDataSize :: AttrLabelProxy "dataSize"
- data MemoryOutputStreamSizePropertyInfo
- constructMemoryOutputStreamSize :: (IsMemoryOutputStream o, MonadIO m) => CULong -> m (GValueConstruct o)
- getMemoryOutputStreamSize :: (MonadIO m, IsMemoryOutputStream o) => o -> m CULong
- memoryOutputStreamSize :: AttrLabelProxy "size"
Exported types
newtype MemoryOutputStream Source #
Memory-managed wrapper type.
Constructors
MemoryOutputStream (ManagedPtr MemoryOutputStream) |
Instances
class (GObject o, IsDescendantOf MemoryOutputStream o) => IsMemoryOutputStream o Source #
Type class for types which can be safely cast to MemoryOutputStream
, for instance with toMemoryOutputStream
.
Instances
(GObject o, IsDescendantOf MemoryOutputStream o) => IsMemoryOutputStream o Source # | |
Defined in GI.Gio.Objects.MemoryOutputStream |
toMemoryOutputStream :: (MonadIO m, IsMemoryOutputStream o) => o -> m MemoryOutputStream Source #
Cast to MemoryOutputStream
, for types for which this is known to be safe. For general casts, use castTo
.
Methods
Click to display all available methods, including inherited ones
Methods
bindProperty, bindPropertyFull, canPoll, canSeek, canTruncate, clearPending, close, closeAsync, closeFinish, createSource, flush, flushAsync, flushFinish, forceFloating, freezeNotify, getv, hasPending, isClosed, isClosing, isFloating, isWritable, notify, notifyByPspec, ref, refSink, runDispose, seek, splice, spliceAsync, spliceFinish, stealAsBytes, stealData, stealQdata, tell, thawNotify, truncate, unref, watchClosure, write, writeAll, writeAllAsync, writeAllFinish, writeAsync, writeBytes, writeBytesAsync, writeBytesFinish, writeFinish, writeNonblocking, writev, writevAll, writevAllAsync, writevAllFinish, writevAsync, writevFinish, writevNonblocking.
Getters
getData, getDataSize, getProperty, getQdata, getSize.
Setters
type family ResolveMemoryOutputStreamMethod (t :: Symbol) o where ... Source #
Equations
getData
data MemoryOutputStreamGetDataMethodInfo Source #
Instances
(signature ~ m (Ptr ()), MonadIO m, IsMemoryOutputStream a) => OverloadedMethod MemoryOutputStreamGetDataMethodInfo a signature Source # | |
Defined in GI.Gio.Objects.MemoryOutputStream Methods overloadedMethod :: a -> signature # | |
OverloadedMethodInfo MemoryOutputStreamGetDataMethodInfo (a :: Type) Source # | |
Defined in GI.Gio.Objects.MemoryOutputStream Methods |
memoryOutputStreamGetData Source #
Arguments
:: (HasCallStack, MonadIO m, IsMemoryOutputStream a) | |
=> a |
|
-> m (Ptr ()) | Returns: pointer to the stream's data, or |
Gets any loaded data from the ostream
.
Note that the returned pointer may become invalid on the next write or truncate operation on the stream.
getDataSize
data MemoryOutputStreamGetDataSizeMethodInfo Source #
Instances
(signature ~ m CSize, MonadIO m, IsMemoryOutputStream a) => OverloadedMethod MemoryOutputStreamGetDataSizeMethodInfo a signature Source # | |
Defined in GI.Gio.Objects.MemoryOutputStream Methods overloadedMethod :: a -> signature # | |
OverloadedMethodInfo MemoryOutputStreamGetDataSizeMethodInfo (a :: Type) Source # | |
Defined in GI.Gio.Objects.MemoryOutputStream Methods |
memoryOutputStreamGetDataSize Source #
Arguments
:: (HasCallStack, MonadIO m, IsMemoryOutputStream a) | |
=> a |
|
-> m CSize | Returns: the number of bytes written to the stream |
Returns the number of bytes from the start up to including the last byte written in the stream that has not been truncated away.
Since: 2.18
getSize
data MemoryOutputStreamGetSizeMethodInfo Source #
Instances
(signature ~ m CSize, MonadIO m, IsMemoryOutputStream a) => OverloadedMethod MemoryOutputStreamGetSizeMethodInfo a signature Source # | |
Defined in GI.Gio.Objects.MemoryOutputStream Methods overloadedMethod :: a -> signature # | |
OverloadedMethodInfo MemoryOutputStreamGetSizeMethodInfo (a :: Type) Source # | |
Defined in GI.Gio.Objects.MemoryOutputStream Methods |
memoryOutputStreamGetSize Source #
Arguments
:: (HasCallStack, MonadIO m, IsMemoryOutputStream a) | |
=> a |
|
-> m CSize | Returns: the number of bytes allocated for the data buffer |
Gets the size of the currently allocated data area (available from
memoryOutputStreamGetData
).
You probably don't want to use this function on resizable streams.
See memoryOutputStreamGetDataSize
instead. For resizable
streams the size returned by this function is an implementation
detail and may be change at any time in response to operations on the
stream.
If the stream is fixed-sized (ie: no realloc was passed to
g_memory_output_stream_new()
) then this is the maximum size of the
stream and further writes will return IOErrorEnumNoSpace
.
In any case, if you want the number of bytes currently written to the
stream, use memoryOutputStreamGetDataSize
.
newResizable
memoryOutputStreamNewResizable :: (HasCallStack, MonadIO m) => m MemoryOutputStream Source #
Creates a new MemoryOutputStream
, using realloc
and free
for memory allocation.
Since: 2.36
stealAsBytes
data MemoryOutputStreamStealAsBytesMethodInfo Source #
Instances
(signature ~ m Bytes, MonadIO m, IsMemoryOutputStream a) => OverloadedMethod MemoryOutputStreamStealAsBytesMethodInfo a signature Source # | |
Defined in GI.Gio.Objects.MemoryOutputStream Methods overloadedMethod :: a -> signature # | |
OverloadedMethodInfo MemoryOutputStreamStealAsBytesMethodInfo (a :: Type) Source # | |
Defined in GI.Gio.Objects.MemoryOutputStream Methods |
memoryOutputStreamStealAsBytes Source #
Arguments
:: (HasCallStack, MonadIO m, IsMemoryOutputStream a) | |
=> a |
|
-> m Bytes | Returns: the stream's data |
Returns data from the ostream
as a Bytes
. ostream
must be
closed before calling this function.
Since: 2.34
stealData
data MemoryOutputStreamStealDataMethodInfo Source #
Instances
(signature ~ m (Ptr ()), MonadIO m, IsMemoryOutputStream a) => OverloadedMethod MemoryOutputStreamStealDataMethodInfo a signature Source # | |
Defined in GI.Gio.Objects.MemoryOutputStream Methods overloadedMethod :: a -> signature # | |
OverloadedMethodInfo MemoryOutputStreamStealDataMethodInfo (a :: Type) Source # | |
Defined in GI.Gio.Objects.MemoryOutputStream Methods |
memoryOutputStreamStealData Source #
Arguments
:: (HasCallStack, MonadIO m, IsMemoryOutputStream a) | |
=> a |
|
-> m (Ptr ()) | Returns: the stream's data, or |
Gets any loaded data from the ostream
. Ownership of the data
is transferred to the caller; when no longer needed it must be
freed using the free function set in ostream
's
MemoryOutputStream
:destroy-function
property.
ostream
must be closed before calling this function.
Since: 2.26
Properties
data
Pointer to buffer where data will be written.
Since: 2.24
data MemoryOutputStreamDataPropertyInfo Source #
Instances
constructMemoryOutputStreamData :: (IsMemoryOutputStream o, MonadIO m) => Ptr () -> m (GValueConstruct o) Source #
Construct a GValueConstruct
with valid value for the “data
” property. This is rarely needed directly, but it is used by new
.
getMemoryOutputStreamData :: (MonadIO m, IsMemoryOutputStream o) => o -> m (Ptr ()) Source #
Get the value of the “data
” property.
When overloading is enabled, this is equivalent to
get
memoryOutputStream #data
memoryOutputStreamData :: AttrLabelProxy "data" Source #
dataSize
Size of data written to the buffer.
Since: 2.24
data MemoryOutputStreamDataSizePropertyInfo Source #
Instances
AttrInfo MemoryOutputStreamDataSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
Defined in GI.Gio.Objects.MemoryOutputStream Associated Types
Methods attrGet :: AttrBaseTypeConstraint MemoryOutputStreamDataSizePropertyInfo o => o -> IO (AttrGetType MemoryOutputStreamDataSizePropertyInfo) # attrSet :: (AttrBaseTypeConstraint MemoryOutputStreamDataSizePropertyInfo o, AttrSetTypeConstraint MemoryOutputStreamDataSizePropertyInfo b) => o -> b -> IO () # attrClear :: AttrBaseTypeConstraint MemoryOutputStreamDataSizePropertyInfo o => o -> IO () # attrConstruct :: (AttrBaseTypeConstraint MemoryOutputStreamDataSizePropertyInfo o, AttrSetTypeConstraint MemoryOutputStreamDataSizePropertyInfo b) => b -> IO (GValueConstruct o) # attrTransfer :: (AttrBaseTypeConstraint MemoryOutputStreamDataSizePropertyInfo o, AttrTransferTypeConstraint MemoryOutputStreamDataSizePropertyInfo b) => Proxy o -> b -> IO (AttrTransferType MemoryOutputStreamDataSizePropertyInfo) # | |||||||||||||||||||||||||||||||||
type AttrAllowedOps MemoryOutputStreamDataSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
Defined in GI.Gio.Objects.MemoryOutputStream | |||||||||||||||||||||||||||||||||
type AttrBaseTypeConstraint MemoryOutputStreamDataSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
type AttrGetType MemoryOutputStreamDataSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
type AttrLabel MemoryOutputStreamDataSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
Defined in GI.Gio.Objects.MemoryOutputStream | |||||||||||||||||||||||||||||||||
type AttrOrigin MemoryOutputStreamDataSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
type AttrSetTypeConstraint MemoryOutputStreamDataSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
Defined in GI.Gio.Objects.MemoryOutputStream | |||||||||||||||||||||||||||||||||
type AttrTransferType MemoryOutputStreamDataSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
Defined in GI.Gio.Objects.MemoryOutputStream | |||||||||||||||||||||||||||||||||
type AttrTransferTypeConstraint MemoryOutputStreamDataSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
getMemoryOutputStreamDataSize :: (MonadIO m, IsMemoryOutputStream o) => o -> m CULong Source #
Get the value of the “data-size
” property.
When overloading is enabled, this is equivalent to
get
memoryOutputStream #dataSize
memoryOutputStreamDataSize :: AttrLabelProxy "dataSize" Source #
size
Current size of the data buffer.
Since: 2.24
data MemoryOutputStreamSizePropertyInfo Source #
Instances
AttrInfo MemoryOutputStreamSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
Defined in GI.Gio.Objects.MemoryOutputStream Associated Types
Methods attrGet :: AttrBaseTypeConstraint MemoryOutputStreamSizePropertyInfo o => o -> IO (AttrGetType MemoryOutputStreamSizePropertyInfo) # attrSet :: (AttrBaseTypeConstraint MemoryOutputStreamSizePropertyInfo o, AttrSetTypeConstraint MemoryOutputStreamSizePropertyInfo b) => o -> b -> IO () # attrClear :: AttrBaseTypeConstraint MemoryOutputStreamSizePropertyInfo o => o -> IO () # attrConstruct :: (AttrBaseTypeConstraint MemoryOutputStreamSizePropertyInfo o, AttrSetTypeConstraint MemoryOutputStreamSizePropertyInfo b) => b -> IO (GValueConstruct o) # attrTransfer :: (AttrBaseTypeConstraint MemoryOutputStreamSizePropertyInfo o, AttrTransferTypeConstraint MemoryOutputStreamSizePropertyInfo b) => Proxy o -> b -> IO (AttrTransferType MemoryOutputStreamSizePropertyInfo) # | |||||||||||||||||||||||||||||||||
type AttrAllowedOps MemoryOutputStreamSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
Defined in GI.Gio.Objects.MemoryOutputStream | |||||||||||||||||||||||||||||||||
type AttrBaseTypeConstraint MemoryOutputStreamSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
type AttrGetType MemoryOutputStreamSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
Defined in GI.Gio.Objects.MemoryOutputStream | |||||||||||||||||||||||||||||||||
type AttrLabel MemoryOutputStreamSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
Defined in GI.Gio.Objects.MemoryOutputStream | |||||||||||||||||||||||||||||||||
type AttrOrigin MemoryOutputStreamSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
type AttrSetTypeConstraint MemoryOutputStreamSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
type AttrTransferType MemoryOutputStreamSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
type AttrTransferTypeConstraint MemoryOutputStreamSizePropertyInfo Source # | |||||||||||||||||||||||||||||||||
constructMemoryOutputStreamSize :: (IsMemoryOutputStream o, MonadIO m) => CULong -> m (GValueConstruct o) Source #
Construct a GValueConstruct
with valid value for the “size
” property. This is rarely needed directly, but it is used by new
.
getMemoryOutputStreamSize :: (MonadIO m, IsMemoryOutputStream o) => o -> m CULong Source #
Get the value of the “size
” property.
When overloading is enabled, this is equivalent to
get
memoryOutputStream #size
memoryOutputStreamSize :: AttrLabelProxy "size" Source #