nsbaci 1.0
Loading...
Searching...
No Matches
nsbaci::services::FileService Class Reference

Service for handling file system operations on BACI source files. More...

#include <fileService.h>

Public Member Functions

saveResult save (nsbaci::types::Text contents, nsbaci::types::File file)
 Saves source code content to a file.
LoadResult load (nsbaci::types::File file)
 Loads source code content from a file.
 FileService ()=default
 Default constructor.
 FileService (const FileService &)=delete
FileServiceoperator= (const FileService &)=delete
 FileService (FileService &&)=default
FileServiceoperator= (FileService &&)=default

Detailed Description

Service for handling file system operations on BACI source files.

FileService provides methods for saving and loading BACI source code files. It enforces the .nsb file extension and provides detailed error reporting for various failure scenarios including:

  • Empty or invalid file paths
  • Invalid file extensions (must be .nsb)
  • Non-existent directories or files
  • Permission and I/O errors

The service is designed to be move-only (non-copyable) to ensure single ownership and prevent accidental resource duplication.

Usage example:

// Save a file
auto saveRes = fs.save(sourceCode, "program.nsb");
if (!saveRes.ok) {
// Handle save error
}
// Load a file
auto loadRes = fs.load("program.nsb");
if (loadRes.ok) {
std::string code = loadRes.contents;
}
LoadResult load(nsbaci::types::File file)
Loads source code content from a file.
Definition fileService.cpp:88
saveResult save(nsbaci::types::Text contents, nsbaci::types::File file)
Saves source code content to a file.
Definition fileService.cpp:22
FileService()=default
Default constructor.

Member Function Documentation

◆ load()

LoadResult nsbaci::services::FileService::load ( nsbaci::types::File file)

Loads source code content from a file.

Validates the file path, extension, and existence before reading. Returns the complete file contents on success.

Parameters
fileThe source file path to load (must have .nsb extension).
Returns
LoadResult containing file contents on success, or error details on failure.

◆ save()

saveResult nsbaci::services::FileService::save ( nsbaci::types::Text contents,
nsbaci::types::File file )

Saves source code content to a file.

Validates the file path and extension before attempting to write. Creates or overwrites the target file with the provided contents.

Parameters
contentsThe source code text to save.
fileThe target file path (must have .nsb extension).
Returns
saveResult indicating success or containing error details.
Note
The parent directory must exist; this method does not create directories.

The documentation for this class was generated from the following files: