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