func read()

in Sources/Instrumentation/WKWebView/BodyCache/StreamingMultipartFormData.swift [450:498]


    func read(buffer: UnsafeMutablePointer<UInt8>, maxLength: Int) -> Int {
        var totalNumberOfBytesRead: Int = 0;

        if (phase == .EncapsulationBoundaryPhase) {
            if let boundary = boundary {
                if let encapsulationBoundaryData = (self.hasInitialBoundary ? HTTPBodyPart.OTelJSBridgeMultipartFormInitialBoundary(boundary: boundary) : HTTPBodyPart.OTelJSBridgeMultipartFormEncapsulationBoundary(boundary: boundary)).data(using: self.stringEncoding) {
                    totalNumberOfBytesRead += self.readData(data: encapsulationBoundaryData,
                                                            intoBuffer: &buffer[totalNumberOfBytesRead],
                                                            maxLength: (maxLength - Int(totalNumberOfBytesRead)))
                }

            }
        }

        if (phase == .HeaderPhase) {
            if let headersData = self.stringForHeaders()?.data(using: self.stringEncoding) {
                totalNumberOfBytesRead += self.readData(data: headersData,
                                                        intoBuffer: &buffer[totalNumberOfBytesRead],
                                                        maxLength: (maxLength - Int(totalNumberOfBytesRead)))
            }
        }

        if (phase == .BodyPhase) {
            if let inputStream: InputStream = self.inputStream {
                let numberOfBytesRead = inputStream.read(&buffer[totalNumberOfBytesRead],
                                                         maxLength: (maxLength - Int(totalNumberOfBytesRead)))
                if -1 == numberOfBytesRead {
                    return -1
                } else {
                    totalNumberOfBytesRead += numberOfBytesRead
                    if inputStream.streamStatus == .atEnd || inputStream.streamStatus == .closed || inputStream.streamStatus == .error {
                        let _ = self.transitionToNextPhase()
                    }
                }
            }
        }

        if (phase == .FinalBoundaryPhase) {
            if let boundary = boundary {
                if let closingBoundaryData = self.hasInitialBoundary ? HTTPBodyPart.OTelJSBridgeMultipartFormFinalBoundary(boundary: boundary).data(using: self.stringEncoding) : Data() {
                    totalNumberOfBytesRead += self.readData(data: closingBoundaryData,
                                                            intoBuffer: &buffer[totalNumberOfBytesRead],
                                                            maxLength: (maxLength - Int(totalNumberOfBytesRead)))
                }
            }
        }

        return totalNumberOfBytesRead;
    }