Grok 10.0.5
grok_private.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016-2023 Grok Image Compression Inc.
3 *
4 * This source code is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Affero General Public License, version 3,
6 * as published by the Free Software Foundation.
7 *
8 * This source code is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Affero General Public License for more details.
12 *
13 * You should have received a copy of the GNU Affero General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 */
17
18#pragma once
19
20#include "grok.h"
21
22/* opaque stream object */
24
25/*
26 * read callback
27 *
28 */
29typedef size_t (*grk_stream_read_fn)(uint8_t* buffer, size_t numBytes, void* user_data);
30
31/*
32 * write callback
33 */
34typedef size_t (*grk_stream_write_fn)(const uint8_t* buffer, size_t numBytes, void* user_data);
35/*
36 * (absolute) seek callback
37 */
38typedef bool (*grk_stream_seek_fn)(uint64_t numBytes, void* user_data);
39/*
40 * free user data callback
41 */
43
51
59
67
76
83void grk_stream_set_user_data_length(grk_stream* stream, uint64_t data_length);
84
85
BufferedStream * stream
Definition BitIO.h:88
MARKER_FUNC func
Definition CodeStreamDecompress.h:34
uint8_t * data
Definition Codeblock.h:61
uint8_t * buffer
packet header storage original buffer
Definition PPMMarker.h:64
size_t(* grk_stream_read_fn)(uint8_t *buffer, size_t numBytes, void *user_data)
Definition grok_private.h:29
void grk_stream_set_write_function(grk_stream *stream, grk_stream_write_fn func)
Set write function.
void grk_stream_set_read_function(grk_stream *stream, grk_stream_read_fn func)
Set read function.
void grk_stream_set_seek_function(grk_stream *stream, grk_stream_seek_fn func)
Set (absolute) seek function (stream must be seekable)
void grk_stream_set_user_data(grk_stream *stream, void *data, grk_stream_free_user_data_fn func)
Set user data for JPEG 2000 stream.
bool(* grk_stream_seek_fn)(uint64_t numBytes, void *user_data)
Definition grok_private.h:38
void grk_stream_set_user_data_length(grk_stream *stream, uint64_t data_length)
Set the length of the user data for the stream.
void(* grk_stream_free_user_data_fn)(void *user_data)
Definition grok_private.h:42
size_t(* grk_stream_write_fn)(const uint8_t *buffer, size_t numBytes, void *user_data)
Definition grok_private.h:34
grk_object grk_stream
Definition TileCache.h:23
void * user_data
Definition plugin_interface.h:117
Grok ref-counted object.
Definition grok.h:126