Blender  V3.3
Stream.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
7 /* simple memory stream functions with buffer overflow check */
8 
9 #pragma once
10 
11 struct Stream {
12  unsigned char *mem; /* location in memory */
13  unsigned int size; /* size */
14  unsigned int pos; /* current position */
15  bool failed; /* error occurred when seeking */
16  Stream(unsigned char *m, unsigned int s) : mem(m), size(s), pos(0), failed(false)
17  {
18  }
19  unsigned int seek(unsigned int p);
20  void set_failed(const char *msg);
21 };
22 
23 unsigned int mem_read(Stream &mem, unsigned long long &i);
24 unsigned int mem_read(Stream &mem, unsigned int &i);
25 unsigned int mem_read(Stream &mem, unsigned short &i);
26 unsigned int mem_read(Stream &mem, unsigned char &i);
27 unsigned int mem_read(Stream &mem, unsigned char *i, unsigned int count);
unsigned int mem_read(Stream &mem, unsigned long long &i)
Definition: Stream.cpp:42
int count
Definition: Stream.h:11
bool failed
Definition: Stream.h:15
void set_failed(const char *msg)
Definition: Stream.cpp:97
unsigned int seek(unsigned int p)
Definition: Stream.cpp:30
unsigned int size
Definition: Stream.h:13
unsigned int pos
Definition: Stream.h:14
Stream(unsigned char *m, unsigned int s)
Definition: Stream.h:16
unsigned char * mem
Definition: Stream.h:12