gecko-dev/ipc/ipdl/test/cxx/TestBridgeMain.h
Botond Ballo 5042cc24cd Bug 1178514 - Mark one-argument constructors in IPDL tests as 'explicit'. r=bent
--HG--
extra : source : 90e22606e13f4b8bdfd2cf74b0f81d7a94c99dee
2015-06-29 18:29:48 -04:00

150 lines
3.7 KiB
C++

#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; }
void Main();
protected:
virtual PTestBridgeMainSubParent*
AllocPTestBridgeMainSubParent(Transport* transport,
ProcessId otherProcess) override;
virtual void ActorDestroy(ActorDestroyReason why) override;
};
class TestBridgeMainSubParent :
public PTestBridgeMainSubParent
{
public:
explicit TestBridgeMainSubParent(Transport* aTransport)
: mTransport(aTransport)
{}
virtual ~TestBridgeMainSubParent() {}
protected:
virtual bool RecvHello() override;
virtual bool RecvHelloSync() override;
virtual bool AnswerHelloRpc() override;
virtual void ActorDestroy(ActorDestroyReason why) override;
Transport* mTransport;
};
//-----------------------------------------------------------------------------
// "Sub" process --- child of "main"
//
class TestBridgeSubParent;
class TestBridgeMainChild :
public PTestBridgeMainChild
{
public:
TestBridgeMainChild();
virtual ~TestBridgeMainChild() {}
protected:
virtual bool RecvStart() override;
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;
IPDLUnitTestSubprocess* mSubprocess;
};
class TestBridgeSubParent :
public PTestBridgeSubParent
{
public:
TestBridgeSubParent() {}
virtual ~TestBridgeSubParent() {}
void Main();
protected:
virtual bool RecvBridgeEm() override;
virtual void ActorDestroy(ActorDestroyReason why) override;
};
//-----------------------------------------------------------------------------
// "Subsub" process --- child of "sub"
//
class TestBridgeSubChild :
public PTestBridgeSubChild
{
public:
TestBridgeSubChild();
virtual ~TestBridgeSubChild() {}
protected:
virtual bool RecvPing() override;
virtual PTestBridgeMainSubChild*
AllocPTestBridgeMainSubChild(Transport* transport,
ProcessId otherProcess) override;
virtual void ActorDestroy(ActorDestroyReason why) override;
};
class TestBridgeMainSubChild :
public PTestBridgeMainSubChild
{
public:
explicit TestBridgeMainSubChild(Transport* aTransport)
: mGotHi(false)
, mTransport(aTransport)
{}
virtual ~TestBridgeMainSubChild() {}
protected:
virtual bool RecvHi() override;
virtual bool AnswerHiRpc() override;
virtual void ActorDestroy(ActorDestroyReason why) override;
bool mGotHi;
Transport* mTransport;
};
} // namespace _ipdltest
} // namespace mozilla
#endif // ifndef mozilla__ipdltest_TestBridgeMain_h