lm-sistemi-software-distrib.../src/main/kotlin/util/jms/replicatedobject/ReplicatedObject.kt

25 lines
557 B
Kotlin

package util.jms.replicatedobject
import util.jms.replier.ActiveMQReplier
import java.io.Serializable
import javax.jms.ObjectMessage
class ReplicatedObject<T : Any>(
private val target: T,
queueName: String,
shared: Boolean = false
) {
private val replier = ActiveMQReplier(queueName, shared)
init {
replier.onRequest {
val call = (it as ObjectMessage).`object` as Call
replier.createObjectMessage(call.execOn(target) as Serializable)
}
}
fun start() {
replier.start()
}
}