diff options
author | Edoardo La Greca | 2025-08-07 19:11:14 +0200 |
---|---|---|
committer | Edoardo La Greca | 2025-08-07 19:11:14 +0200 |
commit | 3e1b04196196d8402387ed0dd4d25249f740fabb (patch) | |
tree | 5e063ba93e5645914b6f6866541130a067342fd4 | |
parent | b3bea2bea5c90435f0f1ed42b0cf82e453105c13 (diff) |
implement flush
-rw-r--r-- | src/main/kotlin/Connection.kt | 17 | ||||
-rw-r--r-- | src/main/kotlin/ProtocolTranslator.kt | 5 |
2 files changed, 19 insertions, 3 deletions
diff --git a/src/main/kotlin/Connection.kt b/src/main/kotlin/Connection.kt index a7de8cc..1cef2d3 100644 --- a/src/main/kotlin/Connection.kt +++ b/src/main/kotlin/Connection.kt @@ -110,8 +110,21 @@ class Connection(transLay: TransportLayer) : ProtocolTranslator { TODO("Not yet implemented") } - override fun flush() { - TODO("Not yet implemented") + override fun flush(oldtag: UShort): String? { + val omsg = OutMessage(NinePMessageType.TFLUSH, this.tagGen.generate(), listOf("oldtag"), + mapOf( + "oldtag" to BigInteger(oldtag.toString()) + ), + emptyMap(), + emptyMap(), + this.maxSize + ) + omsg.write(this.tl) + val checkErr = checkedInMessage(omsg.tag) + if (checkErr.first != null) { + return checkErr.first + } + return null } override fun attach(fid: UInt, afid: UInt, uname: String, aname: String): String? { diff --git a/src/main/kotlin/ProtocolTranslator.kt b/src/main/kotlin/ProtocolTranslator.kt index 4dad240..144eef6 100644 --- a/src/main/kotlin/ProtocolTranslator.kt +++ b/src/main/kotlin/ProtocolTranslator.kt @@ -38,8 +38,11 @@ interface ProtocolTranslator { /** * Abort a message. + * + * @param oldtag The tag of the message that needs to be purged. + * @return a possible error. */ - fun flush() + fun flush(oldtag: UShort): String? /** * Establish a connection. |