Ejemplo n.º 1
0
	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;
	}
Ejemplo n.º 2
0
	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;
	}