michael@0: include protocol PTestBridgeMain; michael@0: include protocol PTestBridgeSub; michael@0: michael@0: namespace mozilla { michael@0: namespace _ipdltest { michael@0: michael@0: // (Bridge protocols can have different semantics than the endpoints michael@0: // they bridge) michael@0: intr protocol PTestBridgeMainSub { michael@0: bridges PTestBridgeMain, PTestBridgeSub; michael@0: michael@0: child: michael@0: Hi(); michael@0: intr HiRpc(); michael@0: michael@0: parent: michael@0: Hello(); michael@0: sync HelloSync(); michael@0: intr HelloRpc(); michael@0: __delete__(); michael@0: michael@0: state START: recv Hello goto HI; michael@0: state HI: send Hi goto HELLO_SYNC; michael@0: state HELLO_SYNC: recv HelloSync goto HELLO_RPC; michael@0: state HELLO_RPC: answer HelloRpc goto HI_RPC; michael@0: state HI_RPC: call HiRpc goto DEAD; michael@0: state DEAD: michael@0: recv __delete__; michael@0: }; michael@0: michael@0: michael@0: } // namespace mozilla michael@0: } // namespace _ipdltest