orbit.server.mesh.local.LocalAddressableDirectory.kt Maven / Gradle / Ivy
/*
Copyright (C) 2015 - 2019 Electronic Arts Inc. All rights reserved.
This file is part of the Orbit Project .
See license in LICENSE.
*/
package orbit.server.mesh.local
import orbit.server.mesh.AddressableDirectory
import orbit.shared.addressable.AddressableLease
import orbit.shared.addressable.AddressableReference
import orbit.util.concurrent.HashMapBackedAsyncMap
import orbit.util.di.ExternallyConfigured
class LocalAddressableDirectory : HashMapBackedAsyncMap(),
AddressableDirectory {
object LocalAddressableDirectorySingleton : ExternallyConfigured {
override val instanceType = LocalAddressableDirectory::class.java
}
override suspend fun isHealthy(): Boolean {
return true
}
override suspend fun tick() {
// Cull expired
values().filter { it.expiresAt.inPast() }.also { toDelete ->
toDelete.forEach {
remove(it.reference)
}
}
}
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy