Grok 12.0.1
MemStream.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016-2024 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
19namespace grk
20{
21#ifdef _WIN32
22typedef void* grk_handle;
23#else
25#endif
26
27/*
28 * Callback function prototype for zero copy read function
29 */
30typedef size_t (*grk_stream_zero_copy_read_fn)(uint8_t** buffer, size_t numBytes, void* user_data);
31
33{
34 MemStream(uint8_t* buffer, size_t offset, size_t length, bool owns);
35 MemStream();
36 ~MemStream();
38 size_t off;
39 size_t len;
40 grk_handle fd; // for file mapping
42};
43
44void set_up_mem_stream(grk_stream* stream, size_t len, bool is_read_stream);
45
54grk_stream* create_mem_stream(uint8_t* buf, size_t len, bool ownsBuffer, bool is_read_stream);
55
56size_t get_mem_stream_offset(grk_stream* stream);
57
58} // namespace grk
Copyright (C) 2016-2024 Grok Image Compression Inc.
Definition ICacheable.h:20
grk_stream * create_mem_stream(uint8_t *buf, size_t len, bool ownsBuffer, bool is_read_stream)
Create stream from buffer.
Definition MemStream.cpp:147
void set_up_mem_stream(grk_stream *stream, size_t len, bool is_read_stream)
Definition MemStream.cpp:122
void grk_read(const uint8_t *buffer, TYPE *value, uint32_t numBytes)
Definition BufferedStream.h:239
int32_t grk_handle
Definition MemStream.h:24
size_t(* grk_stream_zero_copy_read_fn)(uint8_t **buffer, size_t numBytes, void *user_data)
Definition MemStream.h:30
size_t get_mem_stream_offset(grk_stream *stream)
Definition MemStream.cpp:135
Grok ref-counted object.
Definition grok.h:144
Definition MemStream.h:33
grk_handle fd
Definition MemStream.h:40
uint8_t * buf
Definition MemStream.h:37
bool ownsBuffer
Definition MemStream.h:41
size_t len
Definition MemStream.h:39
size_t off
Definition MemStream.h:38
MemStream()
Definition MemStream.cpp:24
~MemStream()
Definition MemStream.cpp:25