31 explicit WorkspaceSession(std::unique_ptr<core::ports::storage::IStorageManager> storageManager);
46 void newFile(const std::
string& path);
47 void openFile(const std::
string& path);
55 void reportException(
core::
errors::ErrorSeverity severity,
57 std::exception_ptr exception) const;
62 std::shared_ptr<
core::
ports::diagnostics::IErrorReporter> errorReporter_;
63 core::
ports::
storage::IStorageManager::DeletionImpactCallback onDeletionImpact_;
Declares deleted-id summaries reported after workspace mutations.
Declares the structured diagnostics reporting port.
Storage manager port used by application services.
Domain aggregate that stores catalog entities for one workspace.
Internal mutable workspace session state for application services.
void setAtomicStoreLoad(core::ports::storage::IStorageManager::AtomicStoreLoad loadFn)
void newFile(const std::string &path)
void setDeletionImpactCallback(core::ports::storage::IStorageManager::DeletionImpactCallback cb)
void setStateChangedCallback(StateChanged cb)
const core::application::workspace::WorkspaceSessionState & state() const noexcept
core::application::workspace::WorkspaceSessionState & mutableState() noexcept
void setErrorReporter(std::shared_ptr< core::ports::diagnostics::IErrorReporter > reporter)
void commit()
Persists the session when a file is open and notifies listeners.
const core::domain::catalog::WorkspaceCatalog & catalogState() const noexcept
void saveFileAs(const std::string &path)
core::domain::catalog::WorkspaceCatalog & mutableCatalogState() noexcept
const std::string & currentPath() const noexcept
void openFile(const std::string &path)
std::function< void(const core::application::workspace::WorkspaceSessionState &)> StateChanged
void setAtomicStoreSave(core::ports::storage::IStorageManager::AtomicStoreSave saveFn)
WorkspaceSession(std::unique_ptr< core::ports::storage::IStorageManager > storageManager)
Creates a session over an existing storage manager.