Currently there are some issues with file handling.
file pool is local to PooledFile so it's not possible to add other pooled file types
truncate/reserve don't have clear semantics
open/reopen don't have clear semantics
no way to create a file of the same type as a given one (requires a file factory)
We want to base the file pool on a static resource pool that's reused by all pooled file types. The resource pool should not be coupled with files and only provide a way to execute a function with a pooled resource. This is because we want to add compressed files. Compressed files also require specifying open/reopen truncate/reserve semantics because they alter the file on close.
Currently there are some issues with file handling.
We want to base the file pool on a static resource pool that's reused by all pooled file types. The resource pool should not be coupled with files and only provide a way to execute a function with a pooled resource. This is because we want to add compressed files. Compressed files also require specifying open/reopen truncate/reserve semantics because they alter the file on close.