chromium/mojo/public/cpp/bindings/message_metadata_helpers.h

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

#ifndef MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_METADATA_HELPERS_H_
#define MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_METADATA_HELPERS_H_

#include <cstdint>

namespace mojo {

class Message;

IPCStableHashFunction;
// Alias for a function taking mojo::Message and returning a pointer to a
// function that computes an IPC hash (stable across Chrome versions).
// An address of the returned function is used for identifying mojo
// method after symbolization.
// The callback could have returned a pair (function address, IPC hash value)
// instead, but returning only the function address results in ~20k binary size
// savings.
MessageToMethodInfoCallback;

// Alias for a function taking mojo::Message and returning method name.
MessageToMethodNameCallback;

}  // namespace mojo

#endif  // MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_METADATA_HELPERS_H_