Top | ![]() |
![]() |
![]() |
![]() |
gpointer | data | Read / Write / Construct Only |
gulong | data-size | Read |
gpointer | destroy-function | Read / Write / Construct Only |
gpointer | realloc-function | Read / Write / Construct Only |
gulong | size | Read / Write / Construct Only |
GMemoryOutputStream is a class for using arbitrary memory chunks as output for GIO streaming output operations.
gpointer (*GReallocFunc) (gpointer data
,gsize size
);
Changes the size of the memory block pointed to by data
to
size
bytes.
The function should have the same semantics as realloc()
.
GOutputStream * g_memory_output_stream_new (gpointer data
,gsize size
,GReallocFunc realloc_function
,GDestroyNotify destroy_function
);
Creates a new GMemoryOutputStream.
If data
is non-NULL
, the stream will use that for its internal storage.
If realloc_fn
is non-NULL
, it will be used for resizing the internal
storage when necessary. To construct a fixed-size output stream,
pass NULL
as realloc_fn
.
1 2 3 4 5 6 7 8 9 |
/* a stream that can grow */ stream = g_memory_output_stream_new (NULL, 0, realloc, free); /* another stream that can grow */ stream2 = g_memory_output_stream_new (NULL, 0, g_realloc, g_free); /* a fixed-size stream */ data = malloc (200); stream3 = g_memory_output_stream_new (data, 200, NULL, free); |
data |
pointer to a chunk of memory to use, or |
[allow-none] |
size |
the size of |
|
realloc_function |
a function with |
[allow-none] |
destroy_function |
a function to be called on |
[allow-none] |
gpointer
g_memory_output_stream_get_data (GMemoryOutputStream *ostream
);
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.
gsize
g_memory_output_stream_get_size (GMemoryOutputStream *ostream
);
Gets the size of the currently allocated data area (available from
g_memory_output_stream_get_data()
). If the stream isn't
growable (no realloc was passed to g_memory_output_stream_new()
) then
this is the maximum size of the stream and further writes
will return G_IO_ERROR_NO_SPACE
.
Note that for growable streams the returned size may become invalid on the next write or truncate operation on the stream.
If you want the number of bytes currently written to the stream, use
g_memory_output_stream_get_data_size()
.
gsize
g_memory_output_stream_get_data_size (GMemoryOutputStream *ostream
);
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
gpointer
g_memory_output_stream_steal_data (GMemoryOutputStream *ostream
);
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
“destroy-function” property.
ostream
must be closed before calling this function.
Since 2.26
typedef struct _GMemoryOutputStream GMemoryOutputStream;
Implements GOutputStream for arbitrary memory chunks.
“data”
property“data” gpointer
Pointer to buffer where data will be written.
Flags: Read / Write / Construct Only
Since 2.24
“data-size”
property“data-size” gulong
Size of data written to the buffer.
Flags: Read
Since 2.24
“destroy-function”
property“destroy-function” gpointer
Function called with the buffer as argument when the stream is destroyed.
Flags: Read / Write / Construct Only
Since 2.24
“realloc-function”
property“realloc-function” gpointer
Function with realloc semantics called to enlarge the buffer.
Flags: Read / Write / Construct Only
Since 2.24
“size”
property“size” gulong
Current size of the data buffer.
Flags: Read / Write / Construct Only
Since 2.24