Skip to content
Snippets Groups Projects
Verified Commit 6787f348 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Continue invoker implementation

parent 2dcd077e
Branches
Tags
No related merge requests found
Showing
with 45 additions and 17 deletions
......@@ -14,12 +14,12 @@ import de.justjanne.libquassel.annotations.SyncedCall
import de.justjanne.libquassel.annotations.SyncedObject
import de.justjanne.libquassel.protocol.models.QStringList
import de.justjanne.libquassel.protocol.models.types.QtType
import de.justjanne.libquassel.protocol.syncables.SyncableStub
import de.justjanne.libquassel.protocol.syncables.StatefulSyncableStub
import de.justjanne.libquassel.protocol.variant.QVariantMap
import de.justjanne.libquassel.protocol.variant.qVariant
@SyncedObject("IrcChannel")
interface IrcChannelStub : SyncableStub {
interface IrcChannelStub : StatefulSyncableStub {
@SyncedCall(target = ProtocolSide.CLIENT)
fun addChannelMode(mode: Char, value: String? = null) {
sync(
......
......@@ -13,13 +13,13 @@ import de.justjanne.libquassel.annotations.ProtocolSide
import de.justjanne.libquassel.annotations.SyncedCall
import de.justjanne.libquassel.annotations.SyncedObject
import de.justjanne.libquassel.protocol.models.types.QtType
import de.justjanne.libquassel.protocol.syncables.SyncableStub
import de.justjanne.libquassel.protocol.syncables.StatefulSyncableStub
import de.justjanne.libquassel.protocol.variant.QVariantMap
import de.justjanne.libquassel.protocol.variant.qVariant
import org.threeten.bp.temporal.Temporal
@SyncedObject("IrcUser")
interface IrcUserStub : SyncableStub {
interface IrcUserStub : StatefulSyncableStub {
@SyncedCall(target = ProtocolSide.CLIENT)
fun addUserModes(modes: String) {
......
......@@ -13,12 +13,12 @@ import de.justjanne.libquassel.annotations.ProtocolSide
import de.justjanne.libquassel.annotations.SyncedCall
import de.justjanne.libquassel.annotations.SyncedObject
import de.justjanne.libquassel.protocol.models.types.QtType
import de.justjanne.libquassel.protocol.syncables.SyncableStub
import de.justjanne.libquassel.protocol.syncables.StatefulSyncableStub
import de.justjanne.libquassel.protocol.variant.QVariantMap
import de.justjanne.libquassel.protocol.variant.qVariant
@SyncedObject("NetworkConfig")
interface NetworkConfigStub : SyncableStub {
interface NetworkConfigStub : StatefulSyncableStub {
@SyncedCall(target = ProtocolSide.CORE)
fun requestSetAutoWhoDelay(delay: Int) {
sync(
......
......@@ -17,14 +17,14 @@ import de.justjanne.libquassel.protocol.models.ids.IdentityId
import de.justjanne.libquassel.protocol.models.network.NetworkInfo
import de.justjanne.libquassel.protocol.models.types.QtType
import de.justjanne.libquassel.protocol.models.types.QuasselType
import de.justjanne.libquassel.protocol.syncables.SyncableStub
import de.justjanne.libquassel.protocol.syncables.StatefulSyncableStub
import de.justjanne.libquassel.protocol.variant.QVariantList
import de.justjanne.libquassel.protocol.variant.QVariantMap
import de.justjanne.libquassel.protocol.variant.qVariant
import java.nio.ByteBuffer
@SyncedObject("Network")
interface NetworkStub : SyncableStub {
interface NetworkStub : StatefulSyncableStub {
@SyncedCall(target = ProtocolSide.CLIENT)
fun setNetworkName(networkName: String) {
sync(
......
......@@ -66,7 +66,7 @@ interface RpcHandlerStub : SyncableStub {
}
@SyncedCall(name = "2identityCreated(Identity)", target = ProtocolSide.CLIENT)
fun identityCreated(identity: IdentityStub) {
fun identityCreated(identity: QVariantMap) {
rpc(
target = ProtocolSide.CLIENT,
"2identityCreated(Identity)",
......
......@@ -15,13 +15,13 @@ import de.justjanne.libquassel.annotations.SyncedObject
import de.justjanne.libquassel.protocol.models.dcc.TransferIdList
import de.justjanne.libquassel.protocol.models.types.QtType
import de.justjanne.libquassel.protocol.models.types.QuasselType
import de.justjanne.libquassel.protocol.syncables.SyncableStub
import de.justjanne.libquassel.protocol.syncables.StatefulSyncableStub
import de.justjanne.libquassel.protocol.variant.QVariantMap
import de.justjanne.libquassel.protocol.variant.qVariant
import java.util.UUID
@SyncedObject("TransferManager")
interface TransferManagerStub : SyncableStub {
interface TransferManagerStub : StatefulSyncableStub {
@SyncedCall(target = ProtocolSide.CLIENT)
fun setTransferIds(transferIds: TransferIdList) {
sync(
......
......@@ -16,14 +16,14 @@ import de.justjanne.libquassel.protocol.models.dcc.TransferDirection
import de.justjanne.libquassel.protocol.models.dcc.TransferStatus
import de.justjanne.libquassel.protocol.models.types.QtType
import de.justjanne.libquassel.protocol.models.types.QuasselType
import de.justjanne.libquassel.protocol.syncables.SyncableStub
import de.justjanne.libquassel.protocol.syncables.StatefulSyncableStub
import de.justjanne.libquassel.protocol.variant.QVariantMap
import de.justjanne.libquassel.protocol.variant.qVariant
import java.net.InetAddress
import java.nio.ByteBuffer
@SyncedObject("Transfer")
interface TransferStub : SyncableStub {
interface TransferStub : StatefulSyncableStub {
@SyncedCall(target = ProtocolSide.CLIENT)
fun accept(savePath: String) {
sync(
......
......@@ -7,7 +7,7 @@
* obtain one at https://mozilla.org/MPL/2.0/.
*/
package de.justjanne.libquassel.protocol.util
package de.justjanne.libquassel.protocol.util.reflect
internal infix fun <T> Any?.instanceof(other: Class<T>?): Boolean =
other?.isInstance(this) != false
/*
* libquassel
* Copyright (c) 2021 Janne Mareike Koschinski
*
* This Source Code Form is subject to the terms of the Mozilla Public License,
* v. 2.0. If a copy of the MPL was not distributed with this file, You can
* obtain one at https://mozilla.org/MPL/2.0/.
*/
package de.justjanne.libquassel.protocol.util.reflect
inline fun <reified T> objectByName(name: String): T {
val clazz = try {
Class.forName(name)
} catch (t: Throwable) {
throw IllegalArgumentException("Could not load class $name", t)
}
val element = clazz.getDeclaredField("INSTANCE").get(null)
require(element != null) {
"No object found for $name"
}
require(element is T) {
"Object of wrong type found for $name:" +
"expected ${T::class.java.canonicalName}, " +
"got ${element::class.java.canonicalName}"
}
return element
}
......@@ -7,7 +7,7 @@
* obtain one at https://mozilla.org/MPL/2.0/.
*/
package de.justjanne.libquassel.protocol.util
package de.justjanne.libquassel.protocol.util.reflect
internal infix fun <T> Class<*>?.subtype(other: Class<T>?): Boolean =
this != null && other?.isAssignableFrom(this) == true
......@@ -15,8 +15,8 @@ import de.justjanne.libquassel.protocol.io.contentToString
import de.justjanne.libquassel.protocol.models.types.QtType
import de.justjanne.libquassel.protocol.models.types.QuasselType
import de.justjanne.libquassel.protocol.serializers.PrimitiveSerializer
import de.justjanne.libquassel.protocol.util.instanceof
import de.justjanne.libquassel.protocol.util.subtype
import de.justjanne.libquassel.protocol.util.reflect.instanceof
import de.justjanne.libquassel.protocol.util.reflect.subtype
import java.nio.ByteBuffer
/**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment