| 106 | } |
| 107 | |
| 108 | const char* FileBufferOverlapped::GetData() const |
| 109 | { |
| 110 | // wait until overlapped function completed |
| 111 | while (!_completed) |
| 112 | { |
| 113 | SleepEx(0, TRUE); |
| 114 | } |
| 115 | if (_compressed) |
| 116 | { |
| 117 | Buffer<char> uncompressed; |
| 118 | uncompressed.Resize(_uncompressedSize); |
| 119 | SSCompress ss; |
| 120 | QIStream in(_buffer.Data(), _buffer.Size()); |
| 121 | ss.Decode(uncompressed.Data(), uncompressed.Size(), in); |
| 122 | _buffer.Init(uncompressed.Data(), uncompressed.Size()); |
| 123 | } |
| 124 | return _buffer.Data(); |
| 125 | } |
| 126 | |
| 127 | FileBufferOverlapped::~FileBufferOverlapped() |
| 128 | { |