Coverage Report

Created: 2025-04-27 06:20

/src/LPM/external.protobuf/include/google/protobuf/internal_visibility.h
Line
Count
Source
1
// Protocol Buffers - Google's data interchange format
2
// Copyright 2023 Google Inc.  All rights reserved.
3
//
4
// Use of this source code is governed by a BSD-style
5
// license that can be found in the LICENSE file or at
6
// https://developers.google.com/open-source/licenses/bsd
7
#ifndef GOOGLE_PROTOBUF_INTERNAL_VISIBILITY_H__
8
#define GOOGLE_PROTOBUF_INTERNAL_VISIBILITY_H__
9
10
namespace google {
11
namespace protobuf {
12
13
class Arena;
14
class Message;
15
class MessageLite;
16
17
namespace internal {
18
19
class InternalVisibilityForTesting;
20
class InternalMetadata;
21
22
// Empty class to use as a mandatory 'internal token' for functions that have to
23
// be public, such as arena constructors, but that are for internal use only.
24
class InternalVisibility {
25
 private:
26
  // Note: we don't use `InternalVisibility() = default` here, but default the
27
  // ctor outside of the class to force a private ctor instance.
28
  explicit constexpr InternalVisibility();
29
30
  friend class ::google::protobuf::Arena;
31
  friend class ::google::protobuf::Message;
32
  friend class ::google::protobuf::MessageLite;
33
  friend class ::google::protobuf::internal::InternalMetadata;
34
35
  friend class InternalVisibilityForTesting;
36
};
37
38
51
inline constexpr InternalVisibility::InternalVisibility() = default;
39
40
}  // namespace internal
41
}  // namespace protobuf
42
}  // namespace google
43
44
#endif  // GOOGLE_PROTOBUF_INTERNAL_VISIBILITY_H__