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