NDEVR
API Documentation
BinaryFileTableInfo.h
1#pragma once
2#include <NDEVR/Dictionary.h>
3#include <NDEVR/Set.h>
4#include <NDEVR/StringAllocatingView.h>
5namespace NDEVR
6{
8 static constexpr uint08 ndv_current_version_number = 1763087346;
9
15 struct NDVHeader
16 {
18 //byte 16-24 Version compatibility number
20 //byte 24-32 Encryption number
21 uint08 encryption_data = Constant<uint08>::Invalid;
22 //byte 32-40 Checksum
23 uint08 checksum = Constant<uint08>::Invalid;
24 //byte 40-56 String bounds - The bounds of all string information in the file
26 //byte 56-72 UUID bounds - The bounds of which model IDs are saved to the file
30
34 bool use_large_compression = false;
35 };
36
37 class BinaryFile;
38 class TableColumn;
40
70}
Logic for reading or writing to a binary file including logic for compressing or decompressing the fi...
Definition BinaryFile.h:136
A specification of upper and lower bounds in N-dimensions.
Definition Bounds.hpp:54
The equivelent of std::vector but with a bit more control.
Definition Buffer.hpp:58
A hash-based key-value store, useful for quick associative lookups.
Definition Dictionary.h:64
Container that stores unique elements in no particular order, and which allow for fast retrieval or i...
Definition Set.h:59
A virtual storage type that is used with Table class to store data where the actual mechanism for sto...
Definition TableColumn.h:86
The primary namespace for the NDEVR SDK.
uint64_t uint08
-Defines an alias representing an 8 byte, unsigned integer
static constexpr uint08 ndv_current_version_number
The current NDV file format version number used for reading and writing.
A container for storing compressed data, typically used for File IO operations.
Definition Compressor.h:53
BinaryFileTableInfo(BinaryFile &file, NDVHeader &header)
Constructs a BinaryFileTableInfo from an existing NDVHeader.
BinaryFile & file
Reference to the BinaryFile being read or written.
Buffer< uint08 > scene_locations
Byte offsets for each scene within the file.
Set< StringAllocatingView > exclusion_list
Set of column names to exclude from reading or writing.
BinaryFileTableInfo(BinaryFile &file)
Constructs a BinaryFileTableInfo with default header values.
Dictionary< TableColumn *, BinaryCompressionObject * > compression_objects
Maps table columns to their associated compression objects.
Dictionary< StringAllocatingView, StringAllocatingView > aliases
Maps column name aliases to their canonical names during serialization.
Header structure for the NDV binary file format.
uint08 version_compat_number
The oldest version that can read this file (bytes 16-24).
Bounds< 1, uint08 > log_bounds
Byte range of log data in the file.
uint08 encryption_data
Encryption metadata for the file (bytes 24-32). Invalid if unencrypted.
uint08 version_number
The file format version number (bytes 8-16).
Bounds< 1, uint08 > uuid_bounds
Byte range of model UUID data in the file (bytes 56-72).
uint08 checksum
Checksum for file integrity validation (bytes 32-40). Invalid if not computed.
Bounds< 1, uint08 > string_bounds
Byte range of all string data in the file (bytes 40-56).
Bounds< 1, uint08 > resource_bounds
Byte range of resource data in the file.
Bounds< 1, uint08 > file_icon_bounds
Byte range of file icon data in the file.
Bounds< 1, uint08 > file_info_bounds
Byte range of file info metadata in the file.
Bounds< 1, uint08 > scene_bounds
Byte range of scene data in the file.
bool use_large_compression
Whether to use large-block compression for file data.