1 /* 2 * Copyright (c) Meta Platforms, Inc. and affiliates. 3 * 4 * This source code is licensed under the MIT license found in the 5 * LICENSE file in the root directory of this source tree. 6 */ 7 8 #pragma once 9 #include <memory> 10 #include "ABI47_0_0NativeModulePerfLogger.h" 11 12 namespace ABI47_0_0facebook { 13 namespace ABI47_0_0React { 14 15 namespace BridgeNativeModulePerfLogger { 16 void enableLogging(std::unique_ptr<NativeModulePerfLogger> &&logger); 17 void disableLogging(); 18 19 void moduleDataCreateStart(const char *moduleName, int32_t id); 20 void moduleDataCreateEnd(const char *moduleName, int32_t id); 21 22 /** 23 * Create NativeModule platform object 24 */ 25 void moduleCreateStart(const char *moduleName, int32_t id); 26 void moduleCreateCacheHit(const char *moduleName, int32_t id); 27 void moduleCreateConstructStart(const char *moduleName, int32_t id); 28 void moduleCreateConstructEnd(const char *moduleName, int32_t id); 29 void moduleCreateSetUpStart(const char *moduleName, int32_t id); 30 void moduleCreateSetUpEnd(const char *moduleName, int32_t id); 31 void moduleCreateEnd(const char *moduleName, int32_t id); 32 void moduleCreateFail(const char *moduleName, int32_t id); 33 34 /** 35 * JS require beginning 36 */ 37 void moduleJSRequireBeginningStart(const char *moduleName); 38 void moduleJSRequireBeginningCacheHit(const char *moduleName); 39 void moduleJSRequireBeginningEnd(const char *moduleName); 40 void moduleJSRequireBeginningFail(const char *moduleName); 41 42 /** 43 * JS require ending 44 */ 45 void moduleJSRequireEndingStart(const char *moduleName); 46 void moduleJSRequireEndingEnd(const char *moduleName); 47 void moduleJSRequireEndingFail(const char *moduleName); 48 49 // Sync method calls 50 void syncMethodCallStart(const char *moduleName, const char *methodName); 51 void syncMethodCallArgConversionStart( 52 const char *moduleName, 53 const char *methodName); 54 void syncMethodCallArgConversionEnd( 55 const char *moduleName, 56 const char *methodName); 57 void syncMethodCallExecutionStart( 58 const char *moduleName, 59 const char *methodName); 60 void syncMethodCallExecutionEnd(const char *moduleName, const char *methodName); 61 void syncMethodCallReturnConversionStart( 62 const char *moduleName, 63 const char *methodName); 64 void syncMethodCallReturnConversionEnd( 65 const char *moduleName, 66 const char *methodName); 67 void syncMethodCallEnd(const char *moduleName, const char *methodName); 68 void syncMethodCallFail(const char *moduleName, const char *methodName); 69 70 // Async method calls 71 void asyncMethodCallStart(const char *moduleName, const char *methodName); 72 void asyncMethodCallArgConversionStart( 73 const char *moduleName, 74 const char *methodName); 75 void asyncMethodCallArgConversionEnd( 76 const char *moduleName, 77 const char *methodName); 78 void asyncMethodCallDispatch(const char *moduleName, const char *methodName); 79 void asyncMethodCallEnd(const char *moduleName, const char *methodName); 80 void asyncMethodCallFail(const char *moduleName, const char *methodName); 81 82 /** 83 * Pre-processing async method call batch 84 */ 85 void asyncMethodCallBatchPreprocessStart(); 86 void asyncMethodCallBatchPreprocessEnd(int batchSize); 87 88 // Async method call execution 89 void asyncMethodCallExecutionStart( 90 const char *moduleName, 91 const char *methodName, 92 int32_t id); 93 void asyncMethodCallExecutionArgConversionStart( 94 const char *moduleName, 95 const char *methodName, 96 int32_t id); 97 void asyncMethodCallExecutionArgConversionEnd( 98 const char *moduleName, 99 const char *methodName, 100 int32_t id); 101 void asyncMethodCallExecutionEnd( 102 const char *moduleName, 103 const char *methodName, 104 int32_t id); 105 void asyncMethodCallExecutionFail( 106 const char *moduleName, 107 const char *methodName, 108 int32_t id); 109 110 } // namespace BridgeNativeModulePerfLogger 111 112 } // namespace ABI47_0_0React 113 } // namespace ABI47_0_0facebook 114