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

#ifndef ServiceWorkerRegistrarTypes_h
#define ServiceWorkerRegistrarTypes_h

#include "mozilla/Attributes.h"
#include "IPCMessageStart.h"
#include "mozilla/RefPtr.h"
#include "nsString.h"
#include "nsTArray.h"
#include "nsTHashtable.h"
#include "mozilla/MozPromise.h"
#include "mozilla/OperatorNewExtensions.h"
#include "mozilla/UniquePtr.h"
#include "mozilla/ipc/ByteBuf.h"
#include "mozilla/ipc/FileDescriptor.h"
#include "mozilla/ipc/IPCForwards.h"
#include "mozilla/ipc/Shmem.h"

// Headers for typedefs
#include "mozilla/dom/WorkerBinding.h"
#include "mozilla/ipc/IPDLStructMember.h"
#include "mozilla/dom/IPCNavigationPreloadState.h"
#include "mozilla/ipc/IPCStream.h"
#include "mozilla/ipc/PBackgroundSharedTypes.h"


//-----------------------------------------------------------------------------
// Declaration of the IPDL type |struct ServiceWorkerRegistrationData|
//
namespace mozilla {
namespace dom {
class ServiceWorkerRegistrationData final
{
private:
    typedef ::int64_t int64_t;
    typedef ::nsCString nsCString;
    typedef ::mozilla::dom::WorkerType WorkerType;
    typedef ::nsString nsString;
    typedef ::mozilla::ipc::PrincipalInfo PrincipalInfo;
    typedef ::uint16_t uint16_t;
    typedef ::mozilla::dom::IPCNavigationPreloadState IPCNavigationPreloadState;

public:
#ifdef __clang__
#  pragma clang diagnostic push
#  if __has_warning("-Wdefaulted-function-deleted")
#    pragma clang diagnostic ignored "-Wdefaulted-function-deleted"
#  endif
#endif
    ServiceWorkerRegistrationData() = default;
#ifdef __clang__
#  pragma clang diagnostic pop
#endif

    MOZ_IMPLICIT ServiceWorkerRegistrationData(
            const int64_t& _numberOfAttemptedActivations,
            const bool& _isBroken,
            const int64_t& _cacheAPIId,
            const nsCString& _scope,
            const WorkerType& _type,
            const nsCString& _currentWorkerURL,
            const bool& _currentWorkerHandlesFetch,
            const nsString& _cacheName,
            const PrincipalInfo& _principal,
            const uint16_t& _updateViaCache,
            const int64_t& _currentWorkerInstalledTime,
            const int64_t& _currentWorkerActivatedTime,
            const int64_t& _lastUpdateTime,
            const IPCNavigationPreloadState& _navigationPreloadState) :
        isBroken_(_isBroken),
        scope_(_scope),
        type_(_type),
        currentWorkerURL_(_currentWorkerURL),
        currentWorkerHandlesFetch_(_currentWorkerHandlesFetch),
        cacheName_(_cacheName),
        principal_(_principal),
        navigationPreloadState_(_navigationPreloadState),
        numberOfAttemptedActivations_(_numberOfAttemptedActivations),
        cacheAPIId_(_cacheAPIId),
        currentWorkerInstalledTime_(_currentWorkerInstalledTime),
        currentWorkerActivatedTime_(_currentWorkerActivatedTime),
        lastUpdateTime_(_lastUpdateTime),
        updateViaCache_(_updateViaCache)
    {
    }

    MOZ_IMPLICIT ServiceWorkerRegistrationData(
            int64_t&& _numberOfAttemptedActivations,
            bool&& _isBroken,
            int64_t&& _cacheAPIId,
            nsCString&& _scope,
            WorkerType&& _type,
            nsCString&& _currentWorkerURL,
            bool&& _currentWorkerHandlesFetch,
            nsString&& _cacheName,
            PrincipalInfo&& _principal,
            uint16_t&& _updateViaCache,
            int64_t&& _currentWorkerInstalledTime,
            int64_t&& _currentWorkerActivatedTime,
            int64_t&& _lastUpdateTime,
            IPCNavigationPreloadState&& _navigationPreloadState) :
        isBroken_(std::move(_isBroken)),
        scope_(std::move(_scope)),
        type_(std::move(_type)),
        currentWorkerURL_(std::move(_currentWorkerURL)),
        currentWorkerHandlesFetch_(std::move(_currentWorkerHandlesFetch)),
        cacheName_(std::move(_cacheName)),
        principal_(std::move(_principal)),
        navigationPreloadState_(std::move(_navigationPreloadState)),
        numberOfAttemptedActivations_(std::move(_numberOfAttemptedActivations)),
        cacheAPIId_(std::move(_cacheAPIId)),
        currentWorkerInstalledTime_(std::move(_currentWorkerInstalledTime)),
        currentWorkerActivatedTime_(std::move(_currentWorkerActivatedTime)),
        lastUpdateTime_(std::move(_lastUpdateTime)),
        updateViaCache_(std::move(_updateViaCache))
    {
    }

    int64_t&
    numberOfAttemptedActivations()
    {
        return numberOfAttemptedActivations_;
    }
    const int64_t&
    numberOfAttemptedActivations() const
    {
        return numberOfAttemptedActivations_;
    }

    bool&
    isBroken()
    {
        return isBroken_;
    }
    const bool&
    isBroken() const
    {
        return isBroken_;
    }

    int64_t&
    cacheAPIId()
    {
        return cacheAPIId_;
    }
    const int64_t&
    cacheAPIId() const
    {
        return cacheAPIId_;
    }

    nsCString&
    scope()
    {
        return scope_;
    }
    const nsCString&
    scope() const
    {
        return scope_;
    }

    WorkerType&
    type()
    {
        return type_;
    }
    const WorkerType&
    type() const
    {
        return type_;
    }

    nsCString&
    currentWorkerURL()
    {
        return currentWorkerURL_;
    }
    const nsCString&
    currentWorkerURL() const
    {
        return currentWorkerURL_;
    }

    bool&
    currentWorkerHandlesFetch()
    {
        return currentWorkerHandlesFetch_;
    }
    const bool&
    currentWorkerHandlesFetch() const
    {
        return currentWorkerHandlesFetch_;
    }

    nsString&
    cacheName()
    {
        return cacheName_;
    }
    const nsString&
    cacheName() const
    {
        return cacheName_;
    }

    PrincipalInfo&
    principal()
    {
        return principal_;
    }
    const PrincipalInfo&
    principal() const
    {
        return principal_;
    }

    uint16_t&
    updateViaCache()
    {
        return updateViaCache_;
    }
    const uint16_t&
    updateViaCache() const
    {
        return updateViaCache_;
    }

    int64_t&
    currentWorkerInstalledTime()
    {
        return currentWorkerInstalledTime_;
    }
    const int64_t&
    currentWorkerInstalledTime() const
    {
        return currentWorkerInstalledTime_;
    }

    int64_t&
    currentWorkerActivatedTime()
    {
        return currentWorkerActivatedTime_;
    }
    const int64_t&
    currentWorkerActivatedTime() const
    {
        return currentWorkerActivatedTime_;
    }

    int64_t&
    lastUpdateTime()
    {
        return lastUpdateTime_;
    }
    const int64_t&
    lastUpdateTime() const
    {
        return lastUpdateTime_;
    }

    IPCNavigationPreloadState&
    navigationPreloadState()
    {
        return navigationPreloadState_;
    }
    const IPCNavigationPreloadState&
    navigationPreloadState() const
    {
        return navigationPreloadState_;
    }

private:
    void
    StaticAssertions() const;
    ::mozilla::ipc::IPDLStructMember<bool> isBroken_;
    ::mozilla::ipc::IPDLStructMember<nsCString> scope_;
    ::mozilla::ipc::IPDLStructMember<WorkerType> type_;
    ::mozilla::ipc::IPDLStructMember<nsCString> currentWorkerURL_;
    ::mozilla::ipc::IPDLStructMember<bool> currentWorkerHandlesFetch_;
    ::mozilla::ipc::IPDLStructMember<nsString> cacheName_;
    ::mozilla::ipc::IPDLStructMember<PrincipalInfo> principal_;
    ::mozilla::ipc::IPDLStructMember<IPCNavigationPreloadState> navigationPreloadState_;
    ::mozilla::ipc::IPDLStructMember<int64_t> numberOfAttemptedActivations_;
    ::mozilla::ipc::IPDLStructMember<int64_t> cacheAPIId_;
    ::mozilla::ipc::IPDLStructMember<int64_t> currentWorkerInstalledTime_;
    ::mozilla::ipc::IPDLStructMember<int64_t> currentWorkerActivatedTime_;
    ::mozilla::ipc::IPDLStructMember<int64_t> lastUpdateTime_;
    ::mozilla::ipc::IPDLStructMember<uint16_t> updateViaCache_;
};
} // namespace dom
} // namespace mozilla

namespace IPC {
template<>
struct ParamTraits <::mozilla::dom::ServiceWorkerRegistrationData>
{
    typedef ::mozilla::dom::ServiceWorkerRegistrationData paramType;
    static void
    Write(
            IPC::MessageWriter* aWriter,
            const paramType& aVar);
    static IPC::ReadResult<paramType>
    Read(IPC::MessageReader* aReader);
};
} // namespace IPC

#endif // ifndef ServiceWorkerRegistrarTypes_h
