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

#ifndef PUtilityProcess_h
#define PUtilityProcess_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/MemoryReportTypes.h"
#include "mozilla/dom/PrefsTypes.h"
#include "mozilla/gfx/GraphicsMessages.h"

namespace mozilla {
namespace ipc {
class PUtilityProcessParent;
} // namespace ipc
} // namespace mozilla
namespace mozilla {
namespace ipc {
class PUtilityProcessChild;
} // namespace ipc
} // namespace mozilla

//-----------------------------------------------------------------------------
// Code common to PUtilityProcessChild and PUtilityProcessParent
//
namespace mozilla {
namespace ipc {
namespace PUtilityProcess {

nsresult
CreateEndpoints(
        mozilla::ipc::EndpointProcInfo aParentDestInfo,
        mozilla::ipc::EndpointProcInfo aChildDestInfo,
        mozilla::ipc::Endpoint<::mozilla::ipc::PUtilityProcessParent>* aParent,
        mozilla::ipc::Endpoint<::mozilla::ipc::PUtilityProcessChild>* aChild);

enum MessageType {
    PUtilityProcessStart = PUtilityProcessMsgStart << 16,
    Msg_InitCrashReporter__ID,
    Msg_AddMemoryReport__ID,
    Msg_FOGData__ID,
    Msg_GeckoTraceExport__ID,
    Msg_AccumulateChildHistograms__ID,
    Msg_AccumulateChildKeyedHistograms__ID,
    Msg_UpdateChildScalars__ID,
    Msg_UpdateChildKeyedScalars__ID,
    Msg_RecordChildEvents__ID,
    Msg_RecordDiscardedData__ID,
    Msg_InitCompleted__ID,
    Msg_Init__ID,
    Msg_InitProfiler__ID,
    Msg_RequestMemoryReport__ID,
    Reply_RequestMemoryReport__ID,
    Msg_PreferenceUpdate__ID,
    Msg_FlushFOGData__ID,
    Reply_FlushFOGData__ID,
    Msg_TestTriggerMetrics__ID,
    Reply_TestTriggerMetrics__ID,
    Msg_TestTelemetryProbes__ID,
    Msg_StartUtilityMediaService__ID,
    Msg_StartJSOracleService__ID,
    PUtilityProcessEnd
};

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

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

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

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

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

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

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

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

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

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

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

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

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

mozilla::UniquePtr<IPC::Message>
Msg_RequestMemoryReport(IPC::Message::routeid_t routingId);
mozilla::UniquePtr<IPC::Message>
Reply_RequestMemoryReport(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_TestTelemetryProbes(IPC::Message::routeid_t routingId);

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

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



} // namespace PUtilityProcess
} // namespace ipc
} // namespace mozilla

#endif // ifndef PUtilityProcess_h
