diff --git a/AlgebraicDataflowArchitectureModel/models/Search.model b/AlgebraicDataflowArchitectureModel/models/Search.model new file mode 100644 index 0000000..e401c34 --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/models/Search.model @@ -0,0 +1,25 @@ +init { + accounts := {"001": {"name": "Alice", "age": 25, "address": "Kobe"}, + "002": {"name": "Bob", "age": 25, "address": "Osaka"}, + "003": {"name": "Carol", "age": 22, "address": "Kobe"}, + "004": {"name": "Dave", "age": 25, "address": "Kobe"} + } +} + +channel Signup { + out accounts(acDB:Map, signUp(aid:Str, name:Str, age:Int, address:Str)) = insert(acDB, aid, {"name": name, "age": age, "address": address}) +} + +channel ChangeName(aid:Str) { + out accounts.{aid}.name(n:Str, changeName(name:Str)) = name +} + +channel Query { + out query(q:Json, enterQuery(age:Int, address:Str)) = {"age": age, "address": address} +} + +channel SearchAccount { + in accounts(acDB:Map, searchAccount(acDB2, q2)) = acDB2 + in query(q:Json, searchAccount(acDB2, q2)) = q2 + out result(resultMap:Map, searchAccount(acDB2, q2)) = search(acDB2, q2) +}