#include #pragma hdrstop #if !defined(FILESTRM_HPP) # include #endif #include #include #include //############################################################################# //########################### FileStream ################################ //############################################################################# //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // void* FileStream::OpenImplementation( const char *file_name, Logical read_only ) { if (read_only) { return (void*)open(file_name, O_BINARY|O_RDONLY); } else { return (void*) open(file_name, O_BINARY|O_CREAT|O_TRUNC|O_WRONLY, S_IWRITE); } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // void FileStream::CloseImplementation(void * file_handle) { close((int)file_handle); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // size_t FileStream::SeekImplementation( void * file_handle, size_t where, Logical from_end ) { return lseek((int)file_handle, (long)where, (from_end) ? SEEK_END : SEEK_SET); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // size_t FileStream::ReadImplementation( void * file_handle, void *buffer, size_t length ) { return read((int)file_handle, buffer, length); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // size_t FileStream::WriteImplementation( void * file_handle, const void *buffer, size_t length ) { return write((int)file_handle, buffer, length); }