interface Sensor { in void activate(); in void deactivate(); out void activated(); out void deactivated(); behaviour { on activate: {} on deactivate: {} } } interface Start { in void start(); behaviour { on start: {} } } component Test { provides Start start1; provides Start start2; requires Sensor sensor; behaviour { void fun() { reply(); } blocking on start1.start(): { sensor.activate(); } on start2.start(): { fun(); } on sensor.activated(): { reply(); } } }