tenfourfox/ipc/ipdl/test/cxx/TestMultiMgrs.h
Cameron Kaiser c9b2922b70 hello FPR
2017-04-19 00:56:45 -07:00

251 lines
6.0 KiB
C++

#ifndef mozilla__ipdltest_TestMultiMgrs_h
#define mozilla__ipdltest_TestMultiMgrs_h 1
#include "mozilla/_ipdltest/IPDLUnitTests.h"
#include "mozilla/_ipdltest/PTestMultiMgrsParent.h"
#include "mozilla/_ipdltest/PTestMultiMgrsChild.h"
#include "mozilla/_ipdltest/PTestMultiMgrsBottomParent.h"
#include "mozilla/_ipdltest/PTestMultiMgrsBottomChild.h"
#include "mozilla/_ipdltest/PTestMultiMgrsLeftParent.h"
#include "mozilla/_ipdltest/PTestMultiMgrsLeftChild.h"
#include "mozilla/_ipdltest/PTestMultiMgrsRightParent.h"
#include "mozilla/_ipdltest/PTestMultiMgrsRightChild.h"
namespace mozilla {
namespace _ipdltest {
//-----------------------------------------------------------------------------
// Parent side
//
class TestMultiMgrsBottomParent :
public PTestMultiMgrsBottomParent
{
public:
TestMultiMgrsBottomParent() { }
virtual ~TestMultiMgrsBottomParent() { }
protected:
virtual void ActorDestroy(ActorDestroyReason why) override {}
};
class TestMultiMgrsLeftParent :
public PTestMultiMgrsLeftParent
{
public:
TestMultiMgrsLeftParent() { }
virtual ~TestMultiMgrsLeftParent() { }
bool HasChild(TestMultiMgrsBottomParent* c)
{
return ManagedPTestMultiMgrsBottomParent().Contains(c);
}
protected:
virtual void ActorDestroy(ActorDestroyReason why) override {}
virtual PTestMultiMgrsBottomParent* AllocPTestMultiMgrsBottomParent() override
{
return new TestMultiMgrsBottomParent();
}
virtual bool DeallocPTestMultiMgrsBottomParent(PTestMultiMgrsBottomParent* actor) override
{
delete actor;
return true;
}
};
class TestMultiMgrsRightParent :
public PTestMultiMgrsRightParent
{
public:
TestMultiMgrsRightParent() { }
virtual ~TestMultiMgrsRightParent() { }
bool HasChild(TestMultiMgrsBottomParent* c)
{
return ManagedPTestMultiMgrsBottomParent().Contains(c);
}
protected:
virtual void ActorDestroy(ActorDestroyReason why) override {}
virtual PTestMultiMgrsBottomParent* AllocPTestMultiMgrsBottomParent() override
{
return new TestMultiMgrsBottomParent();
}
virtual bool DeallocPTestMultiMgrsBottomParent(PTestMultiMgrsBottomParent* actor) override
{
delete actor;
return true;
}
};
class TestMultiMgrsParent :
public PTestMultiMgrsParent
{
public:
TestMultiMgrsParent() { }
virtual ~TestMultiMgrsParent() { }
static bool RunTestInProcesses() { return true; }
static bool RunTestInThreads() { return true; }
void Main();
protected:
virtual bool RecvOK() override;
virtual PTestMultiMgrsLeftParent* AllocPTestMultiMgrsLeftParent() override
{
return new TestMultiMgrsLeftParent();
}
virtual bool DeallocPTestMultiMgrsLeftParent(PTestMultiMgrsLeftParent* actor) override
{
delete actor;
return true;
}
virtual PTestMultiMgrsRightParent* AllocPTestMultiMgrsRightParent() override
{
return new TestMultiMgrsRightParent();
}
virtual bool DeallocPTestMultiMgrsRightParent(PTestMultiMgrsRightParent* actor) override
{
delete actor;
return true;
}
virtual void ActorDestroy(ActorDestroyReason why) override
{
if (NormalShutdown != why)
fail("unexpected destruction!");
passed("ok");
QuitParent();
}
};
//-----------------------------------------------------------------------------
// Child side
//
class TestMultiMgrsBottomChild :
public PTestMultiMgrsBottomChild
{
public:
TestMultiMgrsBottomChild() { }
virtual ~TestMultiMgrsBottomChild() { }
};
class TestMultiMgrsLeftChild :
public PTestMultiMgrsLeftChild
{
public:
TestMultiMgrsLeftChild() { }
virtual ~TestMultiMgrsLeftChild() { }
bool HasChild(PTestMultiMgrsBottomChild* c)
{
return ManagedPTestMultiMgrsBottomChild().Contains(c);
}
protected:
virtual bool RecvPTestMultiMgrsBottomConstructor(PTestMultiMgrsBottomChild* actor) override;
virtual PTestMultiMgrsBottomChild* AllocPTestMultiMgrsBottomChild() override
{
return new TestMultiMgrsBottomChild();
}
virtual bool DeallocPTestMultiMgrsBottomChild(PTestMultiMgrsBottomChild* actor) override
{
delete actor;
return true;
}
};
class TestMultiMgrsRightChild :
public PTestMultiMgrsRightChild
{
public:
TestMultiMgrsRightChild() { }
virtual ~TestMultiMgrsRightChild() { }
bool HasChild(PTestMultiMgrsBottomChild* c)
{
return ManagedPTestMultiMgrsBottomChild().Contains(c);
}
protected:
virtual bool RecvPTestMultiMgrsBottomConstructor(PTestMultiMgrsBottomChild* actor) override;
virtual PTestMultiMgrsBottomChild* AllocPTestMultiMgrsBottomChild() override
{
return new TestMultiMgrsBottomChild();
}
virtual bool DeallocPTestMultiMgrsBottomChild(PTestMultiMgrsBottomChild* actor) override
{
delete actor;
return true;
}
};
class TestMultiMgrsChild :
public PTestMultiMgrsChild
{
public:
TestMultiMgrsChild() { }
virtual ~TestMultiMgrsChild() { }
void Main();
PTestMultiMgrsBottomChild* mBottomL;
PTestMultiMgrsBottomChild* mBottomR;
protected:
virtual bool RecvCheck() override;
virtual PTestMultiMgrsLeftChild* AllocPTestMultiMgrsLeftChild() override
{
return new TestMultiMgrsLeftChild();
}
virtual bool DeallocPTestMultiMgrsLeftChild(PTestMultiMgrsLeftChild* actor) override
{
delete actor;
return true;
}
virtual PTestMultiMgrsRightChild* AllocPTestMultiMgrsRightChild() override
{
return new TestMultiMgrsRightChild();
}
virtual bool DeallocPTestMultiMgrsRightChild(PTestMultiMgrsRightChild* actor) override
{
delete actor;
return true;
}
virtual void ActorDestroy(ActorDestroyReason why) override
{
if (NormalShutdown != why)
fail("unexpected destruction!");
passed("ok");
QuitChild();
}
};
} // namespace _ipdltest
} // namespace mozilla
#endif // ifndef mozilla__ipdltest_TestMultiMgrs_h