Newer
Older
AlgebraicDataflowArchitectureModel / AlgebraicDataflowArchitectureModel / models / SSDStore.model
channel capacity_In {
	out capacity(prev_capacity:Int, setCapacity(cur_capacity)) = cur_capacity
}

channel price_In {
	out price(prev_price:Int, setPrice(cur_price)) = cur_price
}

channel siteA_Add {
	out siteA(prev_products:List, addProductToSiteA(price:Int, capacity:Int)) = cons({"price": price, "capacity": capacity}, prev_products)
}

channel capacity_Update {
	in siteA(prev_products:List, updateList(cur_products, cur_capacity)) = cur_products
	in capacity(prev_capacity:Int, updateList(cur_products, cur_capacity)) = cur_capacity
	out itemsByCapacity(prev_items:List, updateList(cur_products, cur_capacity)) = selectGE(cur_products, "capacity", cur_capacity)
}

channel price_Update {
	in siteA(prev_products:List, updateList(cur_products, cur_price)) = cur_products
	in price(prev_price:Int, updateList(cur_products, cur_price)) = cur_price
	out itemsByPrice(prev_items:List, updateList(cur_products, cur_price)) = selectLE(cur_products, "price", cur_price)
}