Merge branch 'vitorpamplona:main' into labeled-bookmarks
This commit is contained in:
+22
-14
@@ -28,13 +28,13 @@ class PoolEventOutboxState(
|
||||
val event: Event,
|
||||
var relays: Set<NormalizedRelayUrl>,
|
||||
) {
|
||||
private val tries = mutableMapOf<NormalizedRelayUrl, Tries>()
|
||||
private var tries = mapOf<NormalizedRelayUrl, Tries>()
|
||||
|
||||
fun updateRelays(newRelays: Set<NormalizedRelayUrl>) {
|
||||
relays = newRelays
|
||||
}
|
||||
|
||||
fun isDone(url: NormalizedRelayUrl) = tries[url]?.let { it.isDone() } ?: false
|
||||
fun isDone(url: NormalizedRelayUrl) = tries[url]?.isDone() ?: false
|
||||
|
||||
fun isDone() = relays.all { isDone(it) }
|
||||
|
||||
@@ -52,9 +52,9 @@ class PoolEventOutboxState(
|
||||
fun newTry(url: NormalizedRelayUrl) {
|
||||
val currentTries = tries[url]
|
||||
if (currentTries != null) {
|
||||
currentTries.tries.add(TimeUtils.now())
|
||||
currentTries.addTriedTime(TimeUtils.now())
|
||||
} else {
|
||||
tries.put(url, Tries(mutableListOf(TimeUtils.now())))
|
||||
tries = tries + (url to Tries(listOf(TimeUtils.now())))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,24 +65,32 @@ class PoolEventOutboxState(
|
||||
) {
|
||||
val currentTries = tries[url]
|
||||
if (currentTries != null) {
|
||||
currentTries.responses.add(Response(success, message))
|
||||
currentTries.addResponse(Response(success, message))
|
||||
} else {
|
||||
tries.put(
|
||||
url,
|
||||
Tries(
|
||||
mutableListOf(TimeUtils.now() - 1),
|
||||
mutableListOf(Response(success, message)),
|
||||
),
|
||||
tries = tries + (
|
||||
url to
|
||||
Tries(
|
||||
listOf(TimeUtils.now() - 1),
|
||||
listOf(Response(success, message)),
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// Tries 3 times
|
||||
class Tries(
|
||||
val tries: MutableList<Long> = mutableListOf(),
|
||||
val responses: MutableList<Response> = mutableListOf(),
|
||||
var tries: List<Long> = listOf(),
|
||||
var responses: List<Response> = listOf(),
|
||||
) {
|
||||
fun isDone() = responses.any { it.success == true } || responses.size > 2 || tries.size > 3
|
||||
fun isDone() = responses.any { it.success } || responses.size > 2 || tries.size > 3
|
||||
|
||||
fun addResponse(r: Response) {
|
||||
responses += r
|
||||
}
|
||||
|
||||
fun addTriedTime(tried: Long) {
|
||||
tries += tried
|
||||
}
|
||||
}
|
||||
|
||||
class Response(
|
||||
|
||||
Reference in New Issue
Block a user