X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fdatabase%2Fmemory%2FMemoryDatabase.kt;h=6fce7e0c3701fff4a21284a0be10fbe97bd5398c;hb=41ca6590c4a7372cb4f687f6e3cfdc2fab232703;hp=725a6440c9e34a15aa01a8f8ee93d4aa443e47ea;hpb=179e7da4d8d8a474d0b622d60b5f5d32d6ab4052;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.kt b/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.kt index 725a644..6fce7e0 100644 --- a/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.kt +++ b/src/main/java/net/pterodactylus/sone/database/memory/MemoryDatabase.kt @@ -1,5 +1,5 @@ /* - * Sone - MemoryDatabase.java - Copyright © 2013–2019 David Roden + * Sone - MemoryDatabase.kt - Copyright © 2013–2019 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -281,22 +281,24 @@ class MemoryDatabase @Inject constructor(private val configuration: Configuratio protected fun isPostKnown(post: Post) = readLock.withLock { post.id in knownPosts } - protected fun setPostKnown(post: Post, known: Boolean): Unit = + fun setPostKnown(post: Post, known: Boolean): Unit = writeLock.withLock { if (known) knownPosts.add(post.id) else knownPosts.remove(post.id) + saveKnownPosts() } protected fun isPostReplyKnown(postReply: PostReply) = readLock.withLock { postReply.id in knownPostReplies } - protected fun setPostReplyKnown(postReply: PostReply, known: Boolean): Unit = + fun setPostReplyKnown(postReply: PostReply, known: Boolean): Unit = writeLock.withLock { if (known) knownPostReplies.add(postReply.id) else knownPostReplies.remove(postReply.id) + saveKnownPostReplies() } private fun loadKnownPosts() = @@ -312,7 +314,7 @@ class MemoryDatabase @Inject constructor(private val configuration: Configuratio try { readLock.withLock { knownPosts.forEachIndexed { index, knownPostId -> - configuration.getStringValue("KnowsPosts/$index/ID").value = knownPostId + configuration.getStringValue("KnownPosts/$index/ID").value = knownPostId } configuration.getStringValue("KnownPosts/${knownPosts.size}/ID").value = null }