Blender V4.3
BLI_filereader.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
10#pragma once
11
12#ifdef WIN32
13# include "BLI_winstuff.h"
14#else
15# include <sys/types.h>
16#endif
17
18#include "BLI_compiler_attrs.h"
19#include "BLI_utildefines.h"
20
21#if defined(_MSC_VER) || defined(__APPLE__) || defined(__HAIKU__) || defined(__NetBSD__) || \
22 defined(__OpenBSD__)
23typedef int64_t off64_t;
24#endif
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30struct FileReader;
31
32typedef int64_t (*FileReaderReadFn)(struct FileReader *reader, void *buffer, size_t size);
33typedef off64_t (*FileReaderSeekFn)(struct FileReader *reader, off64_t offset, int whence);
34typedef void (*FileReaderCloseFn)(struct FileReader *reader);
35
44
45/* Functions for opening the various types of FileReader.
46 * They either succeed and return a valid FileReader, or fail and return NULL.
47 *
48 * If a FileReader is created, it has to be cleaned up and freed by calling its close()
49 * function unless another FileReader has taken ownership - for example, `Zstd` & `Gzip`
50 * take over the base FileReader and will clean it up when their clean() is called.
51 */
52
64
65#ifdef __cplusplus
66}
67#endif
#define ATTR_WARN_UNUSED_RESULT
#define ATTR_NONNULL(...)
FileReader * BLI_filereader_new_mmap(int filedes) ATTR_WARN_UNUSED_RESULT
FileReader * BLI_filereader_new_zstd(FileReader *base) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
int64_t(* FileReaderReadFn)(struct FileReader *reader, void *buffer, size_t size)
off64_t(* FileReaderSeekFn)(struct FileReader *reader, off64_t offset, int whence)
void(* FileReaderCloseFn)(struct FileReader *reader)
FileReader * BLI_filereader_new_file(int filedes) ATTR_WARN_UNUSED_RESULT
FileReader * BLI_filereader_new_gzip(FileReader *base) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
struct FileReader FileReader
FileReader * BLI_filereader_new_memory(const void *data, size_t len) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
Compatibility-like things for windows.
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition btDbvt.cpp:52
int len
__int64 int64_t
Definition stdint.h:89
FileReaderSeekFn seek
off64_t offset
FileReaderCloseFn close
FileReaderReadFn read