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

#ifndef PChromiumCDM_h
#define PChromiumCDM_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"
#include "mozilla/gmp/GMPTypes.h"

namespace mozilla {
namespace gmp {
class PChromiumCDMParent;
} // namespace gmp
} // namespace mozilla
namespace mozilla {
namespace gmp {
class PChromiumCDMChild;
} // namespace gmp
} // namespace mozilla

//-----------------------------------------------------------------------------
// Code common to PChromiumCDMChild and PChromiumCDMParent
//
namespace mozilla {
namespace gmp {
namespace PChromiumCDM {

nsresult
CreateEndpoints(
        mozilla::ipc::EndpointProcInfo aParentDestInfo,
        mozilla::ipc::EndpointProcInfo aChildDestInfo,
        mozilla::ipc::Endpoint<::mozilla::gmp::PChromiumCDMParent>* aParent,
        mozilla::ipc::Endpoint<::mozilla::gmp::PChromiumCDMChild>* aChild);

enum MessageType {
    PChromiumCDMStart = PChromiumCDMMsgStart << 16,
    Msg_Init__ID,
    Reply_Init__ID,
    Msg_GetStatusForPolicy__ID,
    Msg_SetServerCertificate__ID,
    Msg_CreateSessionAndGenerateRequest__ID,
    Msg_LoadSession__ID,
    Msg_UpdateSession__ID,
    Msg_CloseSession__ID,
    Msg_RemoveSession__ID,
    Msg_CompleteQueryOutputProtectionStatus__ID,
    Msg_Decrypt__ID,
    Msg_InitializeVideoDecoder__ID,
    Msg_DeinitializeVideoDecoder__ID,
    Msg_ResetVideoDecoder__ID,
    Msg_DecryptAndDecodeFrame__ID,
    Msg_Drain__ID,
    Msg_Destroy__ID,
    Msg_GiveBuffer__ID,
    Msg_PurgeShmems__ID,
    Msg___delete____ID,
    Reply___delete____ID,
    Msg_OnResolvePromiseWithKeyStatus__ID,
    Msg_OnResolveNewSessionPromise__ID,
    Msg_OnResolvePromise__ID,
    Msg_OnRejectPromise__ID,
    Msg_OnSessionMessage__ID,
    Msg_OnSessionKeysChange__ID,
    Msg_OnExpirationChange__ID,
    Msg_OnSessionClosed__ID,
    Msg_OnQueryOutputProtectionStatus__ID,
    Msg_ResolveLoadSessionPromise__ID,
    Msg_DecryptedShmem__ID,
    Msg_DecryptedData__ID,
    Msg_DecryptFailed__ID,
    Msg_OnDecoderInitDone__ID,
    Msg_DecodedShmem__ID,
    Msg_DecodedData__ID,
    Msg_DecodeFailed__ID,
    Msg_ResetVideoDecoderComplete__ID,
    Msg_DrainComplete__ID,
    Msg_Shutdown__ID,
    Msg_IncreaseShmemPoolSize__ID,
    PChromiumCDMEnd
};

mozilla::UniquePtr<IPC::Message>
Msg_Init(IPC::Message::routeid_t routingId);
mozilla::UniquePtr<IPC::Message>
Reply_Init(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_GetStatusForPolicy(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_SetServerCertificate(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_CreateSessionAndGenerateRequest(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_LoadSession(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_UpdateSession(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_CloseSession(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_RemoveSession(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_CompleteQueryOutputProtectionStatus(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_Decrypt(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_InitializeVideoDecoder(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_DeinitializeVideoDecoder(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_ResetVideoDecoder(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_DecryptAndDecodeFrame(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_Drain(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_Destroy(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_GiveBuffer(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_PurgeShmems(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg___delete__(IPC::Message::routeid_t routingId);
mozilla::UniquePtr<IPC::Message>
Reply___delete__(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_OnResolvePromiseWithKeyStatus(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_OnResolveNewSessionPromise(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_OnResolvePromise(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_OnRejectPromise(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_OnSessionMessage(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_OnSessionKeysChange(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_OnExpirationChange(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_OnSessionClosed(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_OnQueryOutputProtectionStatus(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_ResolveLoadSessionPromise(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_DecryptedShmem(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_DecryptedData(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_DecryptFailed(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_OnDecoderInitDone(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_DecodedShmem(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_DecodedData(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_DecodeFailed(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_ResetVideoDecoderComplete(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_DrainComplete(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_Shutdown(IPC::Message::routeid_t routingId);

mozilla::UniquePtr<IPC::Message>
Msg_IncreaseShmemPoolSize(IPC::Message::routeid_t routingId);



} // namespace PChromiumCDM
} // namespace gmp
} // namespace mozilla

#endif // ifndef PChromiumCDM_h
