• 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_DYNAMIC_METADATA_MODIFY_DYNAMIC_H
17 #define LIBABCKIT_SRC_ADAPTER_DYNAMIC_METADATA_MODIFY_DYNAMIC_H
18 
19 #include "libabckit/include/c/metadata_core.h"
20 #include "libabckit/include/c/extensions/arkts/metadata_arkts.h"
21 #include "libabckit/include/c/extensions/js/metadata_js.h"
22 
23 namespace libabckit {
24 
25 AbckitString *CreateStringDynamic(AbckitFile *file, const char *value, size_t len);
26 void FunctionSetGraphDynamic(AbckitCoreFunction *function, AbckitGraph *graph);
27 AbckitJsModule *FileAddExternalJsModule(AbckitFile *file, const struct AbckitJsExternalModuleCreateParams *params);
28 AbckitArktsModule *FileAddExternalArkTsV1Module(AbckitFile *file,
29                                                 const struct AbckitArktsV1ExternalModuleCreateParams *params);
30 void ModuleRemoveImportDynamic(AbckitCoreModule *m, AbckitArktsImportDescriptor *i);
31 void ModuleRemoveImportDynamic(AbckitCoreModule *m, AbckitJsImportDescriptor *i);
32 AbckitArktsImportDescriptor *ModuleAddImportFromDynamicModuleDynamic(
33     AbckitCoreModule *importing, AbckitCoreModule *imported,
34     const AbckitArktsImportFromDynamicModuleCreateParams *params);
35 AbckitJsImportDescriptor *ModuleAddImportFromDynamicModuleDynamic(
36     AbckitCoreModule *importing, AbckitCoreModule *imported, const AbckitJsImportFromDynamicModuleCreateParams *params);
37 AbckitArktsExportDescriptor *DynamicModuleAddExportDynamic(AbckitCoreModule *exporting, AbckitCoreModule *exported,
38                                                            const AbckitArktsDynamicModuleExportCreateParams *params);
39 AbckitJsExportDescriptor *DynamicModuleAddExportDynamic(AbckitCoreModule *exporting, AbckitCoreModule *exported,
40                                                         const AbckitJsDynamicModuleExportCreateParams *params);
41 void ModuleRemoveExportDynamic(AbckitCoreModule *m, AbckitArktsExportDescriptor *i);
42 void ModuleRemoveExportDynamic(AbckitCoreModule *m, AbckitJsExportDescriptor *i);
43 AbckitLiteral *FindOrCreateLiteralBoolDynamic(AbckitFile *file, bool value);
44 AbckitLiteral *FindOrCreateLiteralU8Dynamic(AbckitFile *file, uint8_t value);
45 AbckitLiteral *FindOrCreateLiteralU16Dynamic(AbckitFile *file, uint16_t value);
46 AbckitLiteral *FindOrCreateLiteralMethodAffiliateDynamic(AbckitFile *file, uint16_t value);
47 AbckitLiteral *FindOrCreateLiteralU32Dynamic(AbckitFile *file, uint32_t value);
48 AbckitLiteral *FindOrCreateLiteralU64Dynamic(AbckitFile *file, uint64_t value);
49 AbckitLiteral *FindOrCreateLiteralFloatDynamic(AbckitFile *file, float value);
50 AbckitLiteral *FindOrCreateLiteralDoubleDynamic(AbckitFile *file, double value);
51 AbckitLiteral *FindOrCreateLiteralStringDynamic(AbckitFile *file, const char *value, size_t len);
52 AbckitLiteral *FindOrCreateLiteralMethodDynamic(AbckitFile *file, AbckitCoreFunction *function);
53 AbckitLiteral *FindOrCreateLiteralLiteralArrayDynamic(AbckitFile *file, AbckitLiteralArray *litarr);
54 AbckitLiteralArray *CreateLiteralArrayDynamic(AbckitFile *file, AbckitLiteral **value, size_t size);
55 
56 AbckitValue *FindOrCreateValueU1Dynamic(AbckitFile *file, bool value);
57 AbckitValue *FindOrCreateValueDoubleDynamic(AbckitFile *file, double value);
58 AbckitValue *FindOrCreateValueStringDynamic(AbckitFile *file, const char *value, size_t len);
59 AbckitValue *FindOrCreateLiteralArrayValueDynamic(AbckitFile *file, AbckitValue **value, size_t size);
60 
61 AbckitArktsAnnotationInterface *ModuleAddAnnotationInterfaceDynamic(
62     AbckitCoreModule *m, const AbckitArktsAnnotationInterfaceCreateParams *params);
63 
64 AbckitArktsAnnotation *ClassAddAnnotationDynamic(AbckitCoreClass *klass,
65                                                  const AbckitArktsAnnotationCreateParams *params);
66 void ClassRemoveAnnotationDynamic(AbckitCoreClass *klass, AbckitCoreAnnotation *anno);
67 AbckitArktsAnnotation *FunctionAddAnnotationDynamic(AbckitCoreFunction *function,
68                                                     const AbckitArktsAnnotationCreateParams *params);
69 void FunctionRemoveAnnotationDynamic(AbckitCoreFunction *function, AbckitCoreAnnotation *anno);
70 AbckitArktsAnnotationElement *AnnotationAddAnnotationElementDynamic(AbckitCoreAnnotation *anno,
71                                                                     AbckitArktsAnnotationElementCreateParams *params);
72 void AnnotationRemoveAnnotationElementDynamic(AbckitCoreAnnotation *anno, AbckitCoreAnnotationElement *elem);
73 AbckitArktsAnnotationInterfaceField *AnnotationInterfaceAddFieldDynamic(
74     AbckitCoreAnnotationInterface *ai, const AbckitArktsAnnotationInterfaceFieldCreateParams *params);
75 void AnnotationInterfaceRemoveFieldDynamic(AbckitCoreAnnotationInterface *ai,
76                                            AbckitCoreAnnotationInterfaceField *field);
77 }  // namespace libabckit
78 
79 #endif
80