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

#ifndef PImageBridge_h
#define PImageBridge_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/layers/LayersSurfaces.h"
#include "mozilla/layers/LayersMessages.h"
#include "mozilla/ipc/ProtocolTypes.h"

namespace mozilla {
namespace layers {
class PImageBridgeParent;
} // namespace layers
} // namespace mozilla
namespace mozilla {
namespace layers {
class PImageBridgeChild;
} // namespace layers
} // namespace mozilla

//-----------------------------------------------------------------------------
// Code common to PImageBridgeChild and PImageBridgeParent
//
namespace mozilla {
namespace layers {
namespace PImageBridge {

nsresult
CreateEndpoints(
        mozilla::ipc::EndpointProcInfo aParentDestInfo,
        mozilla::ipc::EndpointProcInfo aChildDestInfo,
        mozilla::ipc::Endpoint<::mozilla::layers::PImageBridgeParent>* aParent,
        mozilla::ipc::Endpoint<::mozilla::layers::PImageBridgeChild>* aChild);

enum MessageType {
    PImageBridgeStart = PImageBridgeMsgStart << 16,
    Msg_ParentAsyncMessages__ID,
    Msg_DidComposite__ID,
    Msg_ReportFramesDropped__ID,
    Msg_Update__ID,
    Msg_WillClose__ID,
    Msg_PTextureConstructor__ID,
    Reply_PTextureConstructor__ID,
    Msg_PMediaSystemResourceManagerConstructor__ID,
    Reply_PMediaSystemResourceManagerConstructor__ID,
    Msg_NewCompositable__ID,
    Reply_NewCompositable__ID,
    Msg_ReleaseCompositable__ID,
    PImageBridgeEnd
};

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

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

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

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

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

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

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

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

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



} // namespace PImageBridge
} // namespace layers
} // namespace mozilla

#endif // ifndef PImageBridge_h
