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


#include "mozilla/dom/PContentParent.h"
#include "mozilla/dom/PContentChild.h"
#include "mozilla/dom/PSpeechSynthesisRequestParent.h"
#include "mozilla/dom/PSpeechSynthesisRequestChild.h"
#include "mozilla/dom/PSpeechSynthesis.h"
#include "mozilla/dom/PSpeechSynthesisParent.h"
#include "mozilla/dom/PSpeechSynthesisChild.h"

#include "ipc/IPCMessageUtils.h"
#include "ipc/IPCMessageUtilsSpecializations.h"
#include "nsIFile.h"
#include "mozilla/ipc/Endpoint.h"
#include "mozilla/ipc/ProtocolMessageUtils.h"
#include "mozilla/ipc/ProtocolUtils.h"
#include "mozilla/ipc/ShmemMessageUtils.h"
#include "mozilla/ipc/TaintingIPCUtils.h"

namespace mozilla {
namespace dom {
namespace PSpeechSynthesis {

nsresult
CreateEndpoints(
        mozilla::ipc::EndpointProcInfo aParentDestInfo,
        mozilla::ipc::EndpointProcInfo aChildDestInfo,
        mozilla::ipc::Endpoint<::mozilla::dom::PSpeechSynthesisParent>* aParent,
        mozilla::ipc::Endpoint<::mozilla::dom::PSpeechSynthesisChild>* aChild)
{
    return mozilla::ipc::CreateEndpoints(
        mozilla::ipc::PrivateIPDLInterface(),
        aParentDestInfo, aChildDestInfo, aParent, aChild);
}
mozilla::UniquePtr<IPC::Message>
Msg_VoiceAdded(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_VoiceAdded__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_VoiceRemoved(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_VoiceRemoved__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_SetDefaultVoice(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_SetDefaultVoice__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_IsSpeakingChanged(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_IsSpeakingChanged__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_NotifyVoicesChanged(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_NotifyVoicesChanged__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_NotifyVoicesError(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_NotifyVoicesError__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_InitialVoicesAndState(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_InitialVoicesAndState__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg___delete__(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg___delete____ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Reply___delete__(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Reply___delete____ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::NOT_CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::REPLY));
}
mozilla::UniquePtr<IPC::Message>
Msg_PSpeechSynthesisRequestConstructor(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Msg_PSpeechSynthesisRequestConstructor__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::NOT_REPLY));
}
mozilla::UniquePtr<IPC::Message>
Reply_PSpeechSynthesisRequestConstructor(IPC::Message::routeid_t routingId)
{
    return IPC::Message::IPDLMessage(routingId, Reply_PSpeechSynthesisRequestConstructor__ID, 0, IPC::Message::HeaderFlags(IPC::Message::NOT_NESTED, IPC::Message::NORMAL_PRIORITY, IPC::Message::COMPRESSION_NONE, IPC::Message::EAGER_SEND, IPC::Message::CONSTRUCTOR, IPC::Message::ASYNC, IPC::Message::REPLY));
}

} // namespace PSpeechSynthesis
} // namespace dom
} // namespace mozilla

//-----------------------------------------------------------------------------
// Method definitions for the IPDL type |struct RemoteVoice|
//
namespace mozilla {
namespace dom {
} // namespace dom
} // namespace mozilla

namespace IPC {
auto ParamTraits<::mozilla::dom::RemoteVoice>::Write(
        IPC::MessageWriter* aWriter,
        const paramType& aVar) -> void
{
    IPC::WriteParam(aWriter, (aVar).voiceURI());
    // Sentinel = 'voiceURI'
    (aWriter)->WriteSentinel(245760775);
    IPC::WriteParam(aWriter, (aVar).name());
    // Sentinel = 'name'
    (aWriter)->WriteSentinel(69075362);
    IPC::WriteParam(aWriter, (aVar).lang());
    // Sentinel = 'lang'
    (aWriter)->WriteSentinel(68813219);
    IPC::WriteParam(aWriter, (aVar).localService());
    // Sentinel = 'localService'
    (aWriter)->WriteSentinel(530777309);
    IPC::WriteParam(aWriter, (aVar).queued());
    // Sentinel = 'queued'
    (aWriter)->WriteSentinel(152437386);
}

auto ParamTraits<::mozilla::dom::RemoteVoice>::Read(IPC::MessageReader* aReader) -> IPC::ReadResult<paramType>
{
    auto maybe___voiceURI = IPC::ReadParam<::nsString>(aReader);
    if (!maybe___voiceURI) {
        aReader->FatalError("Error deserializing 'voiceURI' (nsString) member of 'RemoteVoice'");
        return {};

    }
    auto& _voiceURI = *maybe___voiceURI;
    // Sentinel = 'voiceURI'
    if ((!((aReader)->ReadSentinel(245760775)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'voiceURI' (nsString) member of 'RemoteVoice'");
        return {};
    }
    auto maybe___name = IPC::ReadParam<::nsString>(aReader);
    if (!maybe___name) {
        aReader->FatalError("Error deserializing 'name' (nsString) member of 'RemoteVoice'");
        return {};

    }
    auto& _name = *maybe___name;
    // Sentinel = 'name'
    if ((!((aReader)->ReadSentinel(69075362)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'name' (nsString) member of 'RemoteVoice'");
        return {};
    }
    auto maybe___lang = IPC::ReadParam<::nsString>(aReader);
    if (!maybe___lang) {
        aReader->FatalError("Error deserializing 'lang' (nsString) member of 'RemoteVoice'");
        return {};

    }
    auto& _lang = *maybe___lang;
    // Sentinel = 'lang'
    if ((!((aReader)->ReadSentinel(68813219)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'lang' (nsString) member of 'RemoteVoice'");
        return {};
    }
    auto maybe___localService = IPC::ReadParam<bool>(aReader);
    if (!maybe___localService) {
        aReader->FatalError("Error deserializing 'localService' (bool) member of 'RemoteVoice'");
        return {};

    }
    auto& _localService = *maybe___localService;
    // Sentinel = 'localService'
    if ((!((aReader)->ReadSentinel(530777309)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'localService' (bool) member of 'RemoteVoice'");
        return {};
    }
    auto maybe___queued = IPC::ReadParam<bool>(aReader);
    if (!maybe___queued) {
        aReader->FatalError("Error deserializing 'queued' (bool) member of 'RemoteVoice'");
        return {};

    }
    auto& _queued = *maybe___queued;
    // Sentinel = 'queued'
    if ((!((aReader)->ReadSentinel(152437386)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'queued' (bool) member of 'RemoteVoice'");
        return {};
    }
    IPC::ReadResult<paramType> result__{
            std::in_place,
            std::move(_voiceURI),
            std::move(_name),
            std::move(_lang),
            std::move(_localService),
            std::move(_queued)};
    return result__;
}

} // namespace IPC
