blob: 126f21171f08bbfcc70383371f30fe1531ec7bb7 [file] [log] [blame]
// 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;
using IPCStableHashFunction = uint32_t (*)();
// 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.
using MessageToMethodInfoCallback = IPCStableHashFunction (*)(Message&);
// Alias for a function taking mojo::Message and returning method name.
using MessageToMethodNameCallback = const char* (*)(Message&);
} // namespace mojo
#endif // MOJO_PUBLIC_CPP_BINDINGS_MESSAGE_METADATA_HELPERS_H_