Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Create a file system abstraction layer #172
A LibrePCB project consist of many single files which need to be read and written all together. Adding library elements to a project is actually a recursive copy operation of a directory. And the auto-save & restore-after-crash feature creates a copy of every single file.
So LibrePCB heavily uses file system operations. But unfortunately this is not very well implemented until now, many classes are very complicated because they must implement for example the restore-after-crash feature by themselves. I'm pretty sure there are some cases where bad things can happen (e.g. destroying project files) because of bugs.
I think it would be best to introduce some kind of file system abstraction. It should be responsible for:
The doxygen documentation describes (parts of) how this is implemented currently.