@cpp(include="stdio.h") package HelloPackage extern function printf(string, int) extern function printf(string, int, int) port type HelloPort_t(int d) atom type HelloSender(int id) data int myd export port HelloPort_t p(myd) place START, END initial to START do { myd = id; } on p from START to END do { printf("I'm %d, sending Hello World....\n", myd); } end atom type HelloReceiver(int id) data int myd export port HelloPort_t p(myd) place START,END initial to START on p from START to END provided (id == 1 || id == 3) do { printf("I'm %d, Hello World received from %d\n", id, myd); } end connector type OneToThree(HelloPort_t s, HelloPort_t r1, HelloPort_t r2, HelloPort_t r3) define s' r1 r2 r3 on s r1 r2 r3 down { r1.d = s.d; r2.d = s.d; r3.d = s.d; } on s r1 r2 down { r1.d = s.d; r2.d = s.d; } on s r1 r3 down { r1.d = s.d; r3.d = s.d; } on s r2 r3 down { r2.d = s.d; r3.d = s.d; } on s r1 down { r1.d = s.d; } on s r2 down { r2.d = s.d; } on s r3 down { r3.d = s.d; } end compound type HelloCompound() component HelloSender s(0) component HelloReceiver r1(1), r2(2), r3(3) connector OneToThree brd(s.p, r1.p, r2.p, r3.p) end end