//
// Automatically generated by ipdlc.
// Edit at your own risk
//


#include "mozilla/dom/PHandlerService.h"

namespace mozilla {
namespace dom {
namespace PHandlerService {

nsresult
CreateEndpoints(
        base::ProcessId aParentDestPid,
        base::ProcessId aChildDestPid,
        mozilla::ipc::Endpoint<mozilla::dom::PHandlerServiceParent>* aParent,
        mozilla::ipc::Endpoint<mozilla::dom::PHandlerServiceChild>* aChild)
{
    return mozilla::ipc::CreateEndpoints(mozilla::ipc::PrivateIPDLInterface(), aParentDestPid, aChildDestPid, PHandlerServiceMsgStart, PHandlerServiceMsgStartChild, aParent, aChild);
}
bool
Transition(
        mozilla::ipc::Trigger trigger,
        State* next)
{
    State from = (*(next));
    switch (from) {
    case __Null:
    case __Error:
        if ((Msg___delete____ID) == ((trigger).mMessage)) {
            (*(next)) = __Dead;
            return true;
        }
        return (__Null) == (from);
    case __Dead:
        mozilla::ipc::LogicError("__delete__()d actor");
        return false;
    case __Dying:
        mozilla::ipc::LogicError("__delete__()d (and unexpectedly dying) actor");
        return false;
    default:
        mozilla::ipc::LogicError("corrupted actor state");
        return false;
    }
}
IPC::Message*
Msg_FillHandlerInfo(int32_t routingId)
{
    return new IPC::Message(routingId, Msg_FillHandlerInfo__ID, IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, "PHandlerService::Msg_FillHandlerInfo");
}
IPC::Message*
Reply_FillHandlerInfo(int32_t routingId)
{
    return new IPC::Message(routingId, Reply_FillHandlerInfo__ID, IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, "PHandlerService::Reply_FillHandlerInfo");
}
IPC::Message*
Msg_Exists(int32_t routingId)
{
    return new IPC::Message(routingId, Msg_Exists__ID, IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, "PHandlerService::Msg_Exists");
}
IPC::Message*
Reply_Exists(int32_t routingId)
{
    return new IPC::Message(routingId, Reply_Exists__ID, IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, "PHandlerService::Reply_Exists");
}
IPC::Message*
Msg_GetTypeFromExtension(int32_t routingId)
{
    return new IPC::Message(routingId, Msg_GetTypeFromExtension__ID, IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, "PHandlerService::Msg_GetTypeFromExtension");
}
IPC::Message*
Reply_GetTypeFromExtension(int32_t routingId)
{
    return new IPC::Message(routingId, Reply_GetTypeFromExtension__ID, IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, "PHandlerService::Reply_GetTypeFromExtension");
}
IPC::Message*
Msg___delete__(int32_t routingId)
{
    return new IPC::Message(routingId, Msg___delete____ID, IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, "PHandlerService::Msg___delete__");
}
IPC::Message*
Reply___delete__(int32_t routingId)
{
    return new IPC::Message(routingId, Reply___delete____ID, IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, "PHandlerService::Reply___delete__");
}

} // namespace PHandlerService
} // namespace dom
} // namespace mozilla

//-----------------------------------------------------------------------------
// Method definitions for the IPDL type |struct HandlerApp|
//
namespace mozilla {
namespace dom {
MOZ_IMPLICIT HandlerApp::HandlerApp() :
    name_(),
    detailedDescription_()
{
    Init();
}

HandlerApp::~HandlerApp()
{
}

auto HandlerApp::operator==(const HandlerApp& _o) const -> bool
{
    if ((!((name()) == ((_o).name())))) {
        return false;
    }
    if ((!((detailedDescription()) == ((_o).detailedDescription())))) {
        return false;
    }
    return true;
}

auto HandlerApp::Init() -> void
{
}

auto HandlerApp::Assign(
        const nsString& _name,
        const nsString& _detailedDescription) -> void
{
    name_ = _name;
    detailedDescription_ = _detailedDescription;
}

} // namespace dom
} // namespace mozilla

//-----------------------------------------------------------------------------
// Method definitions for the IPDL type |struct HandlerInfo|
//
namespace mozilla {
namespace dom {
MOZ_IMPLICIT HandlerInfo::HandlerInfo() :
    type_(),
    isMIMEInfo_(),
    description_(),
    alwaysAskBeforeHandling_(),
    preferredAction_()
{
    Init();
}

HandlerInfo::~HandlerInfo()
{
}

auto HandlerInfo::operator==(const HandlerInfo& _o) const -> bool
{
    if ((!((type()) == ((_o).type())))) {
        return false;
    }
    if ((!((isMIMEInfo()) == ((_o).isMIMEInfo())))) {
        return false;
    }
    if ((!((description()) == ((_o).description())))) {
        return false;
    }
    if ((!((alwaysAskBeforeHandling()) == ((_o).alwaysAskBeforeHandling())))) {
        return false;
    }
    if ((!((preferredApplicationHandler()) == ((_o).preferredApplicationHandler())))) {
        return false;
    }
    if ((!((possibleApplicationHandlers()) == ((_o).possibleApplicationHandlers())))) {
        return false;
    }
    if ((!((preferredAction()) == ((_o).preferredAction())))) {
        return false;
    }
    return true;
}

auto HandlerInfo::Init() -> void
{
}

auto HandlerInfo::Assign(
        const nsCString& _type,
        const bool& _isMIMEInfo,
        const nsString& _description,
        const bool& _alwaysAskBeforeHandling,
        const HandlerApp& _preferredApplicationHandler,
        const nsTArray<HandlerApp>& _possibleApplicationHandlers,
        const long& _preferredAction) -> void
{
    type_ = _type;
    isMIMEInfo_ = _isMIMEInfo;
    description_ = _description;
    alwaysAskBeforeHandling_ = _alwaysAskBeforeHandling;
    preferredApplicationHandler_ = _preferredApplicationHandler;
    possibleApplicationHandlers_ = _possibleApplicationHandlers;
    preferredAction_ = _preferredAction;
}

} // namespace dom
} // namespace mozilla
