• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef LIBABCKIT_SRC_ADAPTER_STATIC_METADATA_INSPECT_STATIC_H
17 #define LIBABCKIT_SRC_ADAPTER_STATIC_METADATA_INSPECT_STATIC_H
18 
19 #include "libabckit/include/c/metadata_core.h"
20 
21 #include <iostream>
22 
23 namespace libabckit {
24 
25 // ========================================
26 // Module
27 // ========================================
28 
29 bool ModuleEnumerateAnonymousFunctionsStatic(AbckitCoreModule *m, void *data,
30                                              bool (*cb)(AbckitCoreFunction *function, void *data));
31 
32 // ========================================
33 // Namespace
34 // ========================================
35 
36 // ========================================
37 // Class
38 // ========================================
39 
40 AbckitString *ClassGetNameStatic(AbckitCoreClass *klass);
41 
42 // ========================================
43 // Function
44 // ========================================
45 
46 AbckitString *FunctionGetNameStatic(AbckitCoreFunction *function);
47 AbckitGraph *CreateGraphFromFunctionStatic(AbckitCoreFunction *function);
48 bool FunctionIsStaticStatic(AbckitCoreFunction *function);
49 bool FunctionIsCtorStatic(AbckitCoreFunction *function);
50 bool FunctionIsAnonymousStatic(AbckitCoreFunction *function);
51 bool FunctionIsNativeStatic(AbckitCoreFunction *function);
52 
53 // ========================================
54 // Annotation
55 // ========================================
56 
57 // ========================================
58 // String
59 // ========================================
60 
61 void StringToStringStatic(AbckitFile *file, AbckitString *value, char *out, size_t *len);
62 
63 // ========================================
64 // ImportDescriptor
65 // ========================================
66 
67 // ========================================
68 // ImportDescriptor
69 // ========================================
70 
71 // ========================================
72 // Literal
73 // ========================================
74 
75 bool LiteralGetBoolStatic(AbckitLiteral *lit);
76 uint8_t LiteralGetU8Static(AbckitLiteral *lit);
77 uint16_t LiteralGetU16Static(AbckitLiteral *lit);
78 uint16_t LiteralGetMethodAffiliateStatic(AbckitLiteral *lit);
79 uint32_t LiteralGetU32Static(AbckitLiteral *lit);
80 uint64_t LiteralGetU64Static(AbckitLiteral *lit);
81 float LiteralGetFloatStatic(AbckitLiteral *lit);
82 double LiteralGetDoubleStatic(AbckitLiteral *lit);
83 AbckitString *LiteralGetStringStatic(AbckitLiteral *lit);
84 AbckitLiteralTag LiteralGetTagStatic(AbckitLiteral *lit);
85 
86 // ========================================
87 // Value
88 // ========================================
89 
90 AbckitType *ValueGetTypeStatic(AbckitValue *value);
91 bool ValueGetU1Static(AbckitValue *value);
92 double ValueGetDoubleStatic(AbckitValue *value);
93 AbckitString *ValueGetStringStatic(AbckitValue *value);
94 AbckitLiteralArray *ArrayValueGetLiteralArrayStatic(AbckitValue *value);
95 
96 }  // namespace libabckit
97 
98 #endif
99