gecko-dev/ipc/ipdl/test/cxx/TestBridgeMain.h

150 строки
3.7 KiB
C
Исходник Обычный вид История

2011-06-03 22:33:56 +04:00
#ifndef mozilla__ipdltest_TestBridgeMain_h
#define mozilla__ipdltest_TestBridgeMain_h 1
#include "mozilla/_ipdltest/IPDLUnitTests.h"
#include "mozilla/_ipdltest/PTestBridgeMainParent.h"
#include "mozilla/_ipdltest/PTestBridgeMainChild.h"
#include "mozilla/_ipdltest/PTestBridgeSubParent.h"
#include "mozilla/_ipdltest/PTestBridgeSubChild.h"
#include "mozilla/_ipdltest/PTestBridgeMainSubParent.h"
#include "mozilla/_ipdltest/PTestBridgeMainSubChild.h"
namespace mozilla {
namespace _ipdltest {
//-----------------------------------------------------------------------------
// "Main" process
//
class TestBridgeMainParent :
public PTestBridgeMainParent
{
public:
TestBridgeMainParent() {}
virtual ~TestBridgeMainParent() {}
static bool RunTestInProcesses() { return true; }
static bool RunTestInThreads() { return false; }
2011-06-03 22:33:56 +04:00
void Main();
protected:
virtual PTestBridgeMainSubParent*
AllocPTestBridgeMainSubParent(Transport* transport,
ProcessId otherProcess) override;
2011-06-03 22:33:56 +04:00
virtual void ActorDestroy(ActorDestroyReason why) override;
2011-06-03 22:33:56 +04:00
};
class TestBridgeMainSubParent :
public PTestBridgeMainSubParent
{
public:
TestBridgeMainSubParent(Transport* aTransport)
: mTransport(aTransport)
{}
virtual ~TestBridgeMainSubParent() {}
protected:
virtual bool RecvHello() override;
virtual bool RecvHelloSync() override;
virtual bool AnswerHelloRpc() override;
2011-06-03 22:33:56 +04:00
virtual void ActorDestroy(ActorDestroyReason why) override;
2011-06-03 22:33:56 +04:00
Transport* mTransport;
};
//-----------------------------------------------------------------------------
// "Sub" process --- child of "main"
//
class TestBridgeSubParent;
class TestBridgeMainChild :
public PTestBridgeMainChild
{
public:
TestBridgeMainChild();
virtual ~TestBridgeMainChild() {}
protected:
virtual bool RecvStart() override;
2011-06-03 22:33:56 +04:00
virtual PTestBridgeMainSubChild*
AllocPTestBridgeMainSubChild(Transport* transport,
ProcessId otherProcess) override
{
// This shouldn't be called. It's just a byproduct of testing that
// the right code is generated for a bridged protocol that's also
// opened, but we only test bridging here.
MOZ_CRASH();
}
virtual void ActorDestroy(ActorDestroyReason why) override;
2011-06-03 22:33:56 +04:00
IPDLUnitTestSubprocess* mSubprocess;
};
class TestBridgeSubParent :
public PTestBridgeSubParent
{
public:
TestBridgeSubParent() {}
virtual ~TestBridgeSubParent() {}
void Main();
protected:
virtual bool RecvBridgeEm() override;
2011-06-03 22:33:56 +04:00
virtual void ActorDestroy(ActorDestroyReason why) override;
2011-06-03 22:33:56 +04:00
};
//-----------------------------------------------------------------------------
// "Subsub" process --- child of "sub"
//
class TestBridgeSubChild :
public PTestBridgeSubChild
{
public:
TestBridgeSubChild();
virtual ~TestBridgeSubChild() {}
protected:
virtual bool RecvPing() override;
2011-06-03 22:33:56 +04:00
virtual PTestBridgeMainSubChild*
AllocPTestBridgeMainSubChild(Transport* transport,
ProcessId otherProcess) override;
2011-06-03 22:33:56 +04:00
virtual void ActorDestroy(ActorDestroyReason why) override;
2011-06-03 22:33:56 +04:00
};
class TestBridgeMainSubChild :
public PTestBridgeMainSubChild
{
public:
TestBridgeMainSubChild(Transport* aTransport)
: mGotHi(false)
, mTransport(aTransport)
{}
virtual ~TestBridgeMainSubChild() {}
protected:
virtual bool RecvHi() override;
virtual bool AnswerHiRpc() override;
2011-06-03 22:33:56 +04:00
virtual void ActorDestroy(ActorDestroyReason why) override;
2011-06-03 22:33:56 +04:00
bool mGotHi;
Transport* mTransport;
};
} // namespace _ipdltest
} // namespace mozilla
#endif // ifndef mozilla__ipdltest_TestBridgeMain_h