bool AsyncFileByteStream::Open(const string &path, std::ios::openmode mode) { if ( __F::Open(path, mode) == false ) return false; InitAsyncHandler(); return true; }
bool AsyncZipFileByteStream::Open(struct zip *archive, const string &path, int flags) { if ( __F::Open(archive, path, flags) == false ) return false; InitAsyncHandler(); return true; }
void AsyncByteStream::ReadyToRun() { if ( _eventSource == nullptr ) InitAsyncHandler(); ThreadEvent wakeEvent = Wait; if ( _readbuf->HasSpace() ) wakeEvent |= ReadSpaceAvailable; if ( _writebuf->HasData() ) wakeEvent |= DataToWrite; if ( wakeEvent != Wait ) { _event |= wakeEvent; _eventSource->Signal(); } }