Newer
Older
AlgebraicDataflowArchitectureModel / AlgebraicDataflowArchitectureModel / models / Search.model
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)
}