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

// Copyright 2015 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_INTERFACE_ID_H_
#define MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_ID_H_

#include <stdint.h>

namespace mojo {

// The size of the type matters because it is directly used in messages.
InterfaceId;

// IDs of associated interface can be generated at both sides of the message
// pipe. In order to avoid collision, the highest bit is used as namespace bit:
// at the side where the client-side of the primary interface lives, IDs are
// generated with the namespace bit set to 1; at the opposite side IDs are
// generated with the namespace bit set to 0.
const uint32_t kInterfaceIdNamespaceMask =;

const InterfaceId kPrimaryInterfaceId =;
const InterfaceId kInvalidInterfaceId =;

inline bool IsPrimaryInterfaceId(InterfaceId id) {}

inline bool IsValidInterfaceId(InterfaceId id) {}

inline bool HasInterfaceIdNamespaceBitSet(InterfaceId id) {}

}  // namespace mojo

#endif  // MOJO_PUBLIC_CPP_BINDINGS_INTERFACE_ID_H_