|
| 1 | +package io.lambdarpc.examples.promise_pipeline.service |
| 2 | + |
| 3 | +import io.lambdarpc.dsl.LibService |
| 4 | +import io.lambdarpc.dsl.def |
| 5 | +import io.lambdarpc.dsl.j |
| 6 | +import io.lambdarpc.examples.promise_pipeline.Promise |
| 7 | +import io.lambdarpc.examples.promise_pipeline.lazify |
| 8 | +import io.lambdarpc.examples.promise_pipeline.p |
| 9 | +import io.lambdarpc.utils.Endpoint |
| 10 | +import io.lambdarpc.utils.toSid |
| 11 | + |
| 12 | +val serviceId = "d5ec2813-4468-4deb-b156-aeba87b91bd6".toSid() |
| 13 | + |
| 14 | +val s by serviceId.def(p<Int>()) |
| 15 | +val a by serviceId.def(p<Int>(), p<Int>()) |
| 16 | +val b by serviceId.def(p<Int>(), p<Int>()) |
| 17 | +val c by serviceId.def(p<Int>(), j<Int>(), p<Int>()) |
| 18 | +val d by serviceId.def(p<Int>(), p<Int>()) |
| 19 | +val e by serviceId.def(p<Int>(), p<Int>(), p<Int>()) |
| 20 | + |
| 21 | +private object Lib { |
| 22 | + fun s(): Int = 1 |
| 23 | + fun a(x: Int): Int = x + 1 |
| 24 | + fun b(x: Int): Int = x + 3 |
| 25 | + suspend fun c(x: Promise<Int>, k: Int): Promise<Int> = { x() * k } |
| 26 | + fun d(x: Int): Int = x + 8 |
| 27 | + fun e(x: Int, y: Int): Int = x + y |
| 28 | +} |
| 29 | + |
| 30 | +fun main(args: Array<String>) { |
| 31 | + val (port) = args |
| 32 | + val service = LibService(serviceId, Endpoint("localhost", port.toInt())) { |
| 33 | + s of lazify(Lib::s) |
| 34 | + a of lazify(Lib::a) |
| 35 | + b of lazify(Lib::b) |
| 36 | + c of Lib::c |
| 37 | + d of lazify(Lib::d) |
| 38 | + e of lazify(Lib::e) |
| 39 | + } |
| 40 | + service.start() |
| 41 | + service.awaitTermination() |
| 42 | +} |
0 commit comments