|
MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
|
Abstract interface for native OS service backends. More...
#include <SystemBackend.hpp>
Collaboration diagram for MayaFlux::Core::SystemBackend:Public Member Functions | |
| virtual bool | initialize ()=0 |
| Acquire any persistent platform resources required by this backend. | |
| virtual bool | is_initialized () const =0 |
| Return true if initialize() has completed successfully. | |
| virtual void | open_file (FileDialogCallback callback, std::vector< SystemFileFilter > filters, std::filesystem::path start_dir)=0 |
| Present a native open-file dialog. | |
| SystemBackend & | operator= (const SystemBackend &)=delete |
| SystemBackend & | operator= (SystemBackend &&) noexcept=default |
| virtual void | save_file (FileDialogCallback callback, std::string suggested_name, std::vector< SystemFileFilter > filters, std::filesystem::path start_dir)=0 |
| Present a native save-file dialog. | |
| virtual void | shutdown ()=0 |
| Release all platform resources held by this backend. | |
| SystemBackend ()=default | |
| SystemBackend (const SystemBackend &)=delete | |
| SystemBackend (SystemBackend &&) noexcept=default | |
| virtual | ~SystemBackend ()=default |
Abstract interface for native OS service backends.
Implemented per platform: DBusBackend (Linux), COMBackend (Windows), NSBackend (macOS). Portal::System owns a single instance and routes all OS surface calls through it.
Lifecycle is minimal: initialize() acquires any persistent platform resource (e.g. a D-Bus session connection); shutdown() releases it. There is no start()/stop() because no continuous thread is driven at this level - each operation is self-contained.
All dialog operations are non-blocking at the interface level. The callback is invoked exactly once per call, on whichever thread the platform backend uses to deliver its response. Callers that need thread affinity must marshal the result themselves.
Definition at line 54 of file SystemBackend.hpp.