Grok 20.3.2
MemStream.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016-2026 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 <cstdint>
21#include <cstddef>
22
23namespace grk
24{
25#ifdef _WIN32
26typedef void* grk_handle;
27#else
28typedef int32_t grk_handle;
29#endif
30
32{
33 MemStream(uint8_t* buffer, size_t initialOffset, size_t length, bool owns,
34 grk_stream_free_user_data_fn freeCallback);
35 MemStream();
36 ~MemStream();
37 size_t len_;
38 grk_handle fd_; // for file mapping
39 size_t off_;
40 uint8_t* buf_;
41 size_t initialOffset_; // mapping: buf is shifted by initialOffset
42 // and will be shifted back when unmapping
43private:
45};
46
47void memStreamSetup(IStream* stream, bool isReadStream);
48
57IStream* memStreamCreate(uint8_t* buf, size_t len, bool ownsBuffer,
59 bool readStream);
60
61} // namespace grk
enum _GRK_CODEC_FORMAT GRK_CODEC_FORMAT
Grok Supported JPEG 2000 formats.
void(* grk_stream_free_user_data_fn)(void *user_data)
Free user data callback.
Definition grok.h:543
ResWindow.
Definition CompressedChunkCache.h:36
void memStreamSetup(IStream *stream, bool isReadStream)
Definition MemStream.cpp:137
IStream * memStreamCreate(uint8_t *buf, size_t len, bool ownsBuffer, grk_stream_free_user_data_fn freeCallback, GRK_CODEC_FORMAT format, bool isReadStream)
Create stream from buffer.
Definition MemStream.cpp:153
int32_t grk_handle
Definition MemStream.h:28
Definition IStream.h:60
grk_stream_free_user_data_fn freeCallback_
Definition MemStream.h:44
size_t initialOffset_
Definition MemStream.h:41
grk_handle fd_
Definition MemStream.h:38
size_t len_
Definition MemStream.h:37
size_t off_
Definition MemStream.h:39
uint8_t * buf_
Definition MemStream.h:40
MemStream(uint8_t *buffer, size_t initialOffset, size_t length, bool owns, grk_stream_free_user_data_fn freeCallback)
Definition MemStream.cpp:181
MemStream()
Definition MemStream.cpp:186
~MemStream()
Definition MemStream.cpp:187