1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/ipc/ipdl/test/cxx/TestBridgeMain.h Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,139 @@ 1.4 +#ifndef mozilla__ipdltest_TestBridgeMain_h 1.5 +#define mozilla__ipdltest_TestBridgeMain_h 1 1.6 + 1.7 +#include "mozilla/_ipdltest/IPDLUnitTests.h" 1.8 + 1.9 +#include "mozilla/_ipdltest/PTestBridgeMainParent.h" 1.10 +#include "mozilla/_ipdltest/PTestBridgeMainChild.h" 1.11 + 1.12 +#include "mozilla/_ipdltest/PTestBridgeSubParent.h" 1.13 +#include "mozilla/_ipdltest/PTestBridgeSubChild.h" 1.14 + 1.15 +#include "mozilla/_ipdltest/PTestBridgeMainSubParent.h" 1.16 +#include "mozilla/_ipdltest/PTestBridgeMainSubChild.h" 1.17 + 1.18 +namespace mozilla { 1.19 +namespace _ipdltest { 1.20 + 1.21 +//----------------------------------------------------------------------------- 1.22 +// "Main" process 1.23 +// 1.24 +class TestBridgeMainParent : 1.25 + public PTestBridgeMainParent 1.26 +{ 1.27 +public: 1.28 + TestBridgeMainParent() {} 1.29 + virtual ~TestBridgeMainParent() {} 1.30 + 1.31 + static bool RunTestInProcesses() { return true; } 1.32 + static bool RunTestInThreads() { return false; } 1.33 + 1.34 + void Main(); 1.35 + 1.36 +protected: 1.37 + virtual PTestBridgeMainSubParent* 1.38 + AllocPTestBridgeMainSubParent(Transport* transport, 1.39 + ProcessId otherProcess) MOZ_OVERRIDE; 1.40 + 1.41 + virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE; 1.42 +}; 1.43 + 1.44 +class TestBridgeMainSubParent : 1.45 + public PTestBridgeMainSubParent 1.46 +{ 1.47 +public: 1.48 + TestBridgeMainSubParent(Transport* aTransport) 1.49 + : mTransport(aTransport) 1.50 + {} 1.51 + virtual ~TestBridgeMainSubParent() {} 1.52 + 1.53 +protected: 1.54 + virtual bool RecvHello() MOZ_OVERRIDE; 1.55 + virtual bool RecvHelloSync() MOZ_OVERRIDE; 1.56 + virtual bool AnswerHelloRpc() MOZ_OVERRIDE; 1.57 + 1.58 + virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE; 1.59 + 1.60 + Transport* mTransport; 1.61 +}; 1.62 + 1.63 +//----------------------------------------------------------------------------- 1.64 +// "Sub" process --- child of "main" 1.65 +// 1.66 +class TestBridgeSubParent; 1.67 + 1.68 +class TestBridgeMainChild : 1.69 + public PTestBridgeMainChild 1.70 +{ 1.71 +public: 1.72 + TestBridgeMainChild(); 1.73 + virtual ~TestBridgeMainChild() {} 1.74 + 1.75 +protected: 1.76 + virtual bool RecvStart() MOZ_OVERRIDE; 1.77 + 1.78 + virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE; 1.79 + 1.80 + IPDLUnitTestSubprocess* mSubprocess; 1.81 +}; 1.82 + 1.83 +class TestBridgeSubParent : 1.84 + public PTestBridgeSubParent 1.85 +{ 1.86 +public: 1.87 + TestBridgeSubParent() {} 1.88 + virtual ~TestBridgeSubParent() {} 1.89 + 1.90 + void Main(); 1.91 + 1.92 +protected: 1.93 + virtual bool RecvBridgeEm() MOZ_OVERRIDE; 1.94 + 1.95 + virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE; 1.96 +}; 1.97 + 1.98 +//----------------------------------------------------------------------------- 1.99 +// "Subsub" process --- child of "sub" 1.100 +// 1.101 +class TestBridgeSubChild : 1.102 + public PTestBridgeSubChild 1.103 +{ 1.104 +public: 1.105 + TestBridgeSubChild(); 1.106 + virtual ~TestBridgeSubChild() {} 1.107 + 1.108 +protected: 1.109 + virtual bool RecvPing() MOZ_OVERRIDE; 1.110 + 1.111 + virtual PTestBridgeMainSubChild* 1.112 + AllocPTestBridgeMainSubChild(Transport* transport, 1.113 + ProcessId otherProcess) MOZ_OVERRIDE; 1.114 + 1.115 + virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE; 1.116 +}; 1.117 + 1.118 +class TestBridgeMainSubChild : 1.119 + public PTestBridgeMainSubChild 1.120 +{ 1.121 +public: 1.122 + TestBridgeMainSubChild(Transport* aTransport) 1.123 + : mGotHi(false) 1.124 + , mTransport(aTransport) 1.125 + {} 1.126 + virtual ~TestBridgeMainSubChild() {} 1.127 + 1.128 +protected: 1.129 + virtual bool RecvHi() MOZ_OVERRIDE; 1.130 + virtual bool AnswerHiRpc() MOZ_OVERRIDE; 1.131 + 1.132 + virtual void ActorDestroy(ActorDestroyReason why) MOZ_OVERRIDE; 1.133 + 1.134 + bool mGotHi; 1.135 + Transport* mTransport; 1.136 +}; 1.137 + 1.138 +} // namespace _ipdltest 1.139 +} // namespace mozilla 1.140 + 1.141 + 1.142 +#endif // ifndef mozilla__ipdltest_TestBridgeMain_h