bool NativeStorageStream::readBuffer(binary_type& buffer) { if (!stream_) { return false; } int_type current_pos = current(); if (current_pos < 0) { return false; } int_type total_size = size(); if (total_size < 0 || current_pos < total_size) { return false; } size_type result_size = total_size - current_pos; if (!result_size) { buffer.clear(); return true; } buffer.resize(result_size); ULONG io_size = 0; if (FAILED(stream_->Read(&buffer[0], result_size, &io_size))) { KTL_ERROR( KTL_ERROR_SECTION, SPRIG_KRKR_TJS_W("ファイル読込に失敗しました"), sprig::krkr::internal_error ); return false; } return true; }
bool NativeStorageStream::readBuffer(binary_type& buffer, size_type size) { if (!stream_) { return false; } if (!size) { buffer.clear(); return true; } buffer.resize(size); ULONG io_size = 0; if (FAILED(stream_->Read(&buffer[0], size, &io_size))) { KTL_ERROR( KTL_ERROR_SECTION, SPRIG_KRKR_TJS_W("ファイル読込に失敗しました"), sprig::krkr::internal_error ); return false; } return true; }