32 lines
1.2 KiB
Zig
32 lines
1.2 KiB
Zig
const std = @import("std");
|
|
const Pool = std.Thread.Pool;
|
|
const SchemaEngine = @import("../schema/core.zig");
|
|
|
|
const ZipponError = @import("error").ZipponError;
|
|
const log = std.log.scoped(.fileEngine);
|
|
|
|
var path_to_ZipponDB_dir_buffer: [1024]u8 = undefined;
|
|
|
|
/// Manage everything that is relate to read or write in files
|
|
/// Or even get stats, whatever. If it touch files, it's here
|
|
pub const Self = @This();
|
|
|
|
// This basically expend the file with other
|
|
// So I can define function in other file for the same struct
|
|
pub usingnamespace @import("utils.zig");
|
|
pub usingnamespace @import("directory.zig");
|
|
pub usingnamespace @import("read.zig");
|
|
pub usingnamespace @import("write.zig");
|
|
pub usingnamespace @import("dump.zig");
|
|
|
|
path_to_ZipponDB_dir: []const u8,
|
|
thread_pool: *Pool, // same pool as the ThreadEngine
|
|
schema_engine: SchemaEngine = undefined, // This is init after the FileEngine and I attach after. Do I need to init after tho ?
|
|
|
|
pub fn init(path: []const u8, thread_pool: *Pool) ZipponError!Self {
|
|
return Self{
|
|
.path_to_ZipponDB_dir = std.fmt.bufPrint(&path_to_ZipponDB_dir_buffer, "{s}", .{path}) catch return ZipponError.MemoryError,
|
|
.thread_pool = thread_pool,
|
|
};
|
|
}
|