chromium/ipc/ipc_logging.h

// Copyright 2011 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IPC_IPC_LOGGING_H_
#define IPC_IPC_LOGGING_H_

#include "base/task/single_thread_task_runner.h"
#include "ipc/ipc_buildflags.h"

#if BUILDFLAG(IPC_MESSAGE_LOG_ENABLED)

#include <stdint.h>
#include <unordered_map>
#include <vector>

#include "base/component_export.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/ref_counted.h"
#include "base/memory/singleton.h"
#include "base/task/single_thread_task_runner.h"
#include "ipc/ipc_message.h"

// Logging function. |name| is a string in ASCII and |params| is a string in
// UTF-8.
LogFunction;

LogFunctionMap;

namespace IPC {

class Message;
class Sender;

// One instance per process.  Needs to be created on the main thread (the UI
// thread in the browser) but OnPreDispatchMessage/OnPostDispatchMessage
// can be called on other threads.
class COMPONENT_EXPORT(IPC) Logging {};

}  // namespace IPC

#endif  // BUILDFLAG(IPC_MESSAGE_LOG_ENABLED)

#endif  // IPC_IPC_LOGGING_H_