1 // Protocol Buffers - Google's data interchange format 2 // Copyright 2023 Google LLC. 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 8 // IWYU pragma: private, include "upb/reflection/def.h" 9 10 #ifndef UPB_REFLECTION_FILE_DEF_H_ 11 #define UPB_REFLECTION_FILE_DEF_H_ 12 13 #include "upb/reflection/common.h" 14 15 // Must be last. 16 #include "upb/port/def.inc" 17 18 #ifdef __cplusplus 19 extern "C" { 20 #endif 21 22 UPB_API const char* upb_FileDef_EditionName(int edition); 23 24 const upb_FileDef* upb_FileDef_Dependency(const upb_FileDef* f, int i); 25 int upb_FileDef_DependencyCount(const upb_FileDef* f); 26 bool upb_FileDef_HasOptions(const upb_FileDef* f); 27 UPB_API const char* upb_FileDef_Name(const upb_FileDef* f); 28 const UPB_DESC(FileOptions) * upb_FileDef_Options(const upb_FileDef* f); 29 const UPB_DESC(FeatureSet) * upb_FileDef_ResolvedFeatures(const upb_FileDef* f); 30 const char* upb_FileDef_Package(const upb_FileDef* f); 31 UPB_DESC(Edition) upb_FileDef_Edition(const upb_FileDef* f); 32 UPB_API const upb_DefPool* upb_FileDef_Pool(const upb_FileDef* f); 33 34 const upb_FileDef* upb_FileDef_PublicDependency(const upb_FileDef* f, int i); 35 int upb_FileDef_PublicDependencyCount(const upb_FileDef* f); 36 37 const upb_ServiceDef* upb_FileDef_Service(const upb_FileDef* f, int i); 38 int upb_FileDef_ServiceCount(const upb_FileDef* f); 39 40 UPB_API upb_Syntax upb_FileDef_Syntax(const upb_FileDef* f); 41 42 const upb_EnumDef* upb_FileDef_TopLevelEnum(const upb_FileDef* f, int i); 43 int upb_FileDef_TopLevelEnumCount(const upb_FileDef* f); 44 45 const upb_FieldDef* upb_FileDef_TopLevelExtension(const upb_FileDef* f, int i); 46 int upb_FileDef_TopLevelExtensionCount(const upb_FileDef* f); 47 48 const upb_MessageDef* upb_FileDef_TopLevelMessage(const upb_FileDef* f, int i); 49 int upb_FileDef_TopLevelMessageCount(const upb_FileDef* f); 50 51 const upb_FileDef* upb_FileDef_WeakDependency(const upb_FileDef* f, int i); 52 int upb_FileDef_WeakDependencyCount(const upb_FileDef* f); 53 54 // Returns whether |symbol| is transitively included by |f| 55 bool upb_FileDef_Resolves(const upb_FileDef* f, const char* symbol); 56 57 #ifdef __cplusplus 58 } /* extern "C" */ 59 #endif 60 61 #include "upb/port/undef.inc" 62 63 #endif /* UPB_REFLECTION_FILE_DEF_H_ */ 64