Beispiel #1
0
bool AsyncFileByteStream::Open(const string &path, std::ios::openmode mode)
{
    if ( __F::Open(path, mode) == false )
        return false;
    
    InitAsyncHandler();
    return true;
}
Beispiel #2
0
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();
    }
}