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


#include "mozilla/dom/quota/PRemoteQuotaObjectParent.h"
#include "mozilla/dom/quota/PRemoteQuotaObjectChild.h"
#include "mozilla/dom/quota/IPCQuotaObject.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"


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

namespace IPC {
auto ParamTraits<::mozilla::dom::quota::IPCQuotaObject>::Write(
        IPC::MessageWriter* aWriter,
        paramType&& aVar) -> void
{
    IPC::WriteParam(aWriter, std::move((aVar).childEndpoint()));
    // Sentinel = 'childEndpoint'
    (aWriter)->WriteSentinel(606864710);
}

auto ParamTraits<::mozilla::dom::quota::IPCQuotaObject>::Read(IPC::MessageReader* aReader) -> IPC::ReadResult<paramType>
{
    auto maybe___childEndpoint = IPC::ReadParam<::mozilla::ipc::Endpoint<::mozilla::dom::quota::PRemoteQuotaObjectChild>>(aReader);
    if (!maybe___childEndpoint) {
        aReader->FatalError("Error deserializing 'childEndpoint' (Endpoint<::mozilla::dom::quota::PRemoteQuotaObjectChild>) member of 'IPCQuotaObject'");
        return {};

    }
    auto& _childEndpoint = *maybe___childEndpoint;
    // Sentinel = 'childEndpoint'
    if ((!((aReader)->ReadSentinel(606864710)))) {
        mozilla::ipc::SentinelReadError("Error deserializing 'childEndpoint' (Endpoint<::mozilla::dom::quota::PRemoteQuotaObjectChild>) member of 'IPCQuotaObject'");
        return {};
    }
    IPC::ReadResult<paramType> result__{
            std::in_place,
            std::move(_childEndpoint)};
    return result__;
}

} // namespace IPC
