From b2139026291aabd8584f5f28f0941b918b9ae4fa Mon Sep 17 00:00:00 2001 From: Koen <koen@pop-os.localdomain> Date: Fri, 4 Aug 2023 09:26:21 +0200 Subject: [PATCH] Cleanup. --- .../polycentric/core/ProcessHandleTests.kt | 2 +- .../com/futo/polycentric/core/ApiMethods.kt | 26 ++++++++++++++++++ .../futo/polycentric/core/ProcessHandle.kt | 27 ------------------- 3 files changed, 27 insertions(+), 28 deletions(-) diff --git a/app/src/androidTest/java/com/futo/polycentric/core/ProcessHandleTests.kt b/app/src/androidTest/java/com/futo/polycentric/core/ProcessHandleTests.kt index 683f585..58342b7 100644 --- a/app/src/androidTest/java/com/futo/polycentric/core/ProcessHandleTests.kt +++ b/app/src/androidTest/java/com/futo/polycentric/core/ProcessHandleTests.kt @@ -143,7 +143,7 @@ class ProcessHandleTests { assertEquals(imageBytes.size.toLong(), imageManifest.byteCount) assertEquals(processHandle.processSecret.process.toProto(), imageManifest.process) - val bytes = processHandle.loadDataFromServer(imageManifest.toURLInfoDataLink(processHandle.system.toProto(), processHandle.processSecret.process.toProto(), listOf(TestConstants.SERVER))) + val bytes = ApiMethods.loadReassembledDataFromServer(imageManifest.toURLInfoDataLink(processHandle.system.toProto(), processHandle.processSecret.process.toProto(), listOf(TestConstants.SERVER))) val imageData = ImageData(imageManifest.mime, imageManifest.width.toInt(), imageManifest.height.toInt(), bytes) assertEquals(imageManifest.byteCount.toInt(), imageData.data.size) assertArrayEquals(imageBytes, imageData.data) diff --git a/app/src/main/java/com/futo/polycentric/core/ApiMethods.kt b/app/src/main/java/com/futo/polycentric/core/ApiMethods.kt index 1f96f7b..8f05142 100644 --- a/app/src/main/java/com/futo/polycentric/core/ApiMethods.kt +++ b/app/src/main/java/com/futo/polycentric/core/ApiMethods.kt @@ -145,5 +145,31 @@ class ApiMethods { return Protocol.QueryReferencesResponse.parseFrom(result.get()) } + + fun loadReassembledDataFromServer(dataLink: Protocol.URLInfoDataLink): ByteArray { + val server = dataLink.serversList.first() //TODO: Somehow use all servers + + val blobProcessRangesToGet = Protocol.RangesForProcess.newBuilder() + .addAllRanges(dataLink.sectionsList) + .setProcess(dataLink.process) + .build() + val blobEvents = ApiMethods.getEvents(server, dataLink.system, Protocol.RangesForSystem.newBuilder() + .addRangesForProcesses(blobProcessRangesToGet).build()).eventsList.map { SignedEvent.fromProto(it) } + + val totalArray = ByteArray(dataLink.byteCount.toInt()) + var offset = 0 + + for (section in dataLink.sectionsList) { + val sectionEvents = blobEvents.filter { it.event.logicalClock >= section.low && it.event.logicalClock <= section.high }.sortedBy { it.event.logicalClock } + sectionEvents.forEach { + val blobSection = it.event.content + val size = blobSection.size + blobSection.copyInto(totalArray, offset) + offset += size + } + } + + return totalArray + } } } diff --git a/app/src/main/java/com/futo/polycentric/core/ProcessHandle.kt b/app/src/main/java/com/futo/polycentric/core/ProcessHandle.kt index 053e692..6432baf 100644 --- a/app/src/main/java/com/futo/polycentric/core/ProcessHandle.kt +++ b/app/src/main/java/com/futo/polycentric/core/ProcessHandle.kt @@ -208,33 +208,6 @@ class ProcessHandle constructor( return setAvatar(imageBundleBuilder.build()) } - fun loadDataFromServer(dataLink: Protocol.URLInfoDataLink): ByteArray { - val systemState = SystemState.fromStorageTypeSystemState(Store.instance.getSystemState(system)) - val server = systemState.servers.first() //TODO: Somehow use all servers? - - val blobProcessRangesToGet = Protocol.RangesForProcess.newBuilder() - .addAllRanges(dataLink.sectionsList) - .setProcess(processSecret.process.toProto()) - .build() - val blobEvents = ApiMethods.getEvents(server, system.toProto(), Protocol.RangesForSystem.newBuilder() - .addRangesForProcesses(blobProcessRangesToGet).build()).eventsList.map { SignedEvent.fromProto(it) } - - val totalArray = ByteArray(dataLink.byteCount.toInt()) - var offset = 0 - - for (section in dataLink.sectionsList) { - val sectionEvents = blobEvents.filter { it.event.logicalClock >= section.low && it.event.logicalClock <= section.high }.sortedBy { it.event.logicalClock } - sectionEvents.forEach { - val blobSection = it.event.content - val size = blobSection.size - blobSection.copyInto(totalArray, offset) - offset += size - } - } - - return totalArray - } - private fun publish(contentType: Long, content: ByteArray, lwwElementSet: LWWElementSet?, lwwElement: LWWElement?, references: MutableList<Protocol.Reference>): Pointer { synchronized(this) { val processState = Store.instance.getProcessState(system, processSecret.process) -- GitLab