Add decorations for things which are considered part of the API
Use nullptr instead of 0 for pointers
Use default member initializers and constructor delegation
Use size_t for sizes in I/O classes
Make sure all classes have sensible copy semantics They must either support copying or be derived from NonCopyable.
Implement controls for file descriptor inheritance
Make certain functions pure virtual so I won't forget to implement them
Remove an outdated comment
Synchronize access to the underlying object of Slice This was prompted by the interactions between GL::ResourceManager and some upcoming changes to DataFile::PackSource. If a new Slice object is created and tries to connect to signal_flush_required at the exact moment another Slice is seeking and causing the signal to be emitted, the emit and connect calls step on each others' toes and corrupt the heap.
The EOF logic wasn't quite correct If the underlying object reported EOF after reading the last byte, then ZlibCompressed would report EOF itself before giving out all data from the buffers.
Add functions to support console redirection
Remove signal_closed now that closing is only done in the destructor
Unify end-of-file handling
Put the check_access function in Base
Separate event-related stuff from Base File objects will no longer provide events; it never made much sense anyway
Use the new Handle class to hide platform details from public headers
Move files to prepare for assimilation into core