michael@0: #ifndef mozilla__ipdltest_TestBridgeMain_h michael@0: #define mozilla__ipdltest_TestBridgeMain_h 1 michael@0: michael@0: #include "mozilla/_ipdltest/IPDLUnitTests.h" michael@0: michael@0: #include "mozilla/_ipdltest/PTestBridgeMainParent.h" michael@0: #include "mozilla/_ipdltest/PTestBridgeMainChild.h" michael@0: michael@0: #include "mozilla/_ipdltest/PTestBridgeSubParent.h" michael@0: #include "mozilla/_ipdltest/PTestBridgeSubChild.h" michael@0: michael@0: #include "mozilla/_ipdltest/PTestBridgeMainSubParent.h" michael@0: #include "mozilla/_ipdltest/PTestBridgeMainSubChild.h" michael@0: michael@0: namespace mozilla { michael@0: namespace _ipdltest { michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // "Main" process michael@0: // michael@0: class TestBridgeMainParent : michael@0: public PTestBridgeMainParent michael@0: { michael@0: public: michael@0: TestBridgeMainParent() {} michael@0: virtual ~TestBridgeMainParent() {} michael@0: michael@0: static bool RunTestInProcesses() { return true; } michael@0: static bool RunTestInThreads() { return false; } michael@0: michael@0: void Main(); michael@0: michael@0: protected: michael@0: virtual PTestBridgeMainSubParent* michael@0: AllocPTestBridgeMainSubParent(Transport* transport, michael@0: ProcessId otherProcess) MOZ_OVERRIDE; michael@0: michael@0: virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE; michael@0: }; michael@0: michael@0: class TestBridgeMainSubParent : michael@0: public PTestBridgeMainSubParent michael@0: { michael@0: public: michael@0: TestBridgeMainSubParent(Transport* aTransport) michael@0: : mTransport(aTransport) michael@0: {} michael@0: virtual ~TestBridgeMainSubParent() {} michael@0: michael@0: protected: michael@0: virtual bool RecvHello() MOZ_OVERRIDE; michael@0: virtual bool RecvHelloSync() MOZ_OVERRIDE; michael@0: virtual bool AnswerHelloRpc() MOZ_OVERRIDE; michael@0: michael@0: virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE; michael@0: michael@0: Transport* mTransport; michael@0: }; michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // "Sub" process --- child of "main" michael@0: // michael@0: class TestBridgeSubParent; michael@0: michael@0: class TestBridgeMainChild : michael@0: public PTestBridgeMainChild michael@0: { michael@0: public: michael@0: TestBridgeMainChild(); michael@0: virtual ~TestBridgeMainChild() {} michael@0: michael@0: protected: michael@0: virtual bool RecvStart() MOZ_OVERRIDE; michael@0: michael@0: virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE; michael@0: michael@0: IPDLUnitTestSubprocess* mSubprocess; michael@0: }; michael@0: michael@0: class TestBridgeSubParent : michael@0: public PTestBridgeSubParent michael@0: { michael@0: public: michael@0: TestBridgeSubParent() {} michael@0: virtual ~TestBridgeSubParent() {} michael@0: michael@0: void Main(); michael@0: michael@0: protected: michael@0: virtual bool RecvBridgeEm() MOZ_OVERRIDE; michael@0: michael@0: virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE; michael@0: }; michael@0: michael@0: //----------------------------------------------------------------------------- michael@0: // "Subsub" process --- child of "sub" michael@0: // michael@0: class TestBridgeSubChild : michael@0: public PTestBridgeSubChild michael@0: { michael@0: public: michael@0: TestBridgeSubChild(); michael@0: virtual ~TestBridgeSubChild() {} michael@0: michael@0: protected: michael@0: virtual bool RecvPing() MOZ_OVERRIDE; michael@0: michael@0: virtual PTestBridgeMainSubChild* michael@0: AllocPTestBridgeMainSubChild(Transport* transport, michael@0: ProcessId otherProcess) MOZ_OVERRIDE; michael@0: michael@0: virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE; michael@0: }; michael@0: michael@0: class TestBridgeMainSubChild : michael@0: public PTestBridgeMainSubChild michael@0: { michael@0: public: michael@0: TestBridgeMainSubChild(Transport* aTransport) michael@0: : mGotHi(false) michael@0: , mTransport(aTransport) michael@0: {} michael@0: virtual ~TestBridgeMainSubChild() {} michael@0: michael@0: protected: michael@0: virtual bool RecvHi() MOZ_OVERRIDE; michael@0: virtual bool AnswerHiRpc() MOZ_OVERRIDE; michael@0: michael@0: virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE; michael@0: michael@0: bool mGotHi; michael@0: Transport* mTransport; michael@0: }; michael@0: michael@0: } // namespace _ipdltest michael@0: } // namespace mozilla michael@0: michael@0: michael@0: #endif // ifndef mozilla__ipdltest_TestBridgeMain_h