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

#ifndef PGMP_h
#define PGMP_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 "CrashReporter/CrashReporterInitArgs.h"
#include "mozilla/dom/PrefsTypes.h"

namespace mozilla {
namespace gmp {
class PGMPParent;
} // namespace gmp
} // namespace mozilla
namespace mozilla {
namespace gmp {
class PGMPChild;
} // namespace gmp
} // namespace mozilla

//-----------------------------------------------------------------------------
// Code common to PGMPChild and PGMPParent
//
namespace mozilla {
namespace gmp {
namespace PGMP {

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

enum MessageType {
    PGMPStart = PGMPMsgStart << 16,
    Msg_InitCrashReporter__ID,
    Msg_PGMPTimerConstructor__ID,
    Reply_PGMPTimerConstructor__ID,
    Msg_PGMPStorageConstructor__ID,
    Reply_PGMPStorageConstructor__ID,
    Msg_PGMPContentChildDestroyed__ID,
    Msg_FOGData__ID,
    Msg_CrashPluginNow__ID,
    Msg_StartPlugin__ID,
    Reply_StartPlugin__ID,
    Msg_ProvideStorageId__ID,
    Msg_PreloadLibs__ID,
    Msg_CloseActive__ID,
    Msg_InitGMPContentChild__ID,
    Msg_InitProfiler__ID,
    Msg_PreferenceUpdate__ID,
    Msg_FlushFOGData__ID,
    Reply_FlushFOGData__ID,
    Msg_TestTriggerMetrics__ID,
    Reply_TestTriggerMetrics__ID,
    Msg_Shutdown__ID,
    Reply_Shutdown__ID,
    PGMPEnd
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



} // namespace PGMP
} // namespace gmp
} // namespace mozilla

#endif // ifndef PGMP_h
