Sources/AlibabaCloudRUMBridge/AlibabaCloudRUMBridge.m (156 lines of code) (raw):

// // Copyright 2023 aliyun-sls Authors // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #import "AlibabaCloudRUMBridge.h" @import AlibabaCloudRUM; #ifdef __cplusplus extern "C" { #endif static const char *_app_id; void _alibabacloud_rum__set_debuggable(int debuggable) { if (debuggable) { [AlibabaCloudRUM setLogFlag:@0xFFFFFFFF]; } } void _alibabacloud_rum__set_config_address(const char *config_address) { [AlibabaCloudRUM setConfigAddress:[NSString stringWithUTF8String:config_address]]; } void _alibabacloud_rum__set_app_id(const char *app_id) { _app_id = strdup(app_id); } void _alibabacloud_rum__set_framework(int framework) { [AlibabaCloudRUM setAppFramework:framework]; } void _alibabacloud_rum__start(void) { [AlibabaCloudRUM startWithAppID:[NSString stringWithUTF8String:_app_id]]; } void _alibabacloud_rum__stop(void) { if (NULL != _app_id) { free((void *)_app_id); } [AlibabaCloudRUM stopSDK]; } void _alibabacloud_rum__set_user_name(const char *user_name) { [AlibabaCloudRUM setUserName:[NSString stringWithUTF8String:user_name]]; } void _alibabacloud_rum__set_extra_info(uint32_t length, char **kvs) { if (length <= 0) { return; } NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; for (uint32_t i = 0; i < length; i++) { if (NULL == kvs[2 * i] || NULL == kvs[2 * i + 1] || strlen(kvs[2 * i + 1]) == 0 || strlen(kvs[2 * i + 1]) == 0 ) { continue;; } [dictionary setObject:[NSString stringWithUTF8String:kvs[2 * i + 1]] forKey:[NSString stringWithUTF8String:kvs[2 * i]] ]; } [AlibabaCloudRUM setExtraInfo:dictionary]; } void _alibabacloud_rum__set_user_extra_info(uint32_t length, char **kvs) { if (length <= 0) { return; } NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; for (uint32_t i = 0; i < length; i++) { if (NULL == kvs[2 * i] || NULL == kvs[2 * i + 1] || strlen(kvs[2 * i]) == 0 || strlen(kvs[2 * i + 1]) == 0 ) { continue;; } [dictionary setObject:[NSString stringWithUTF8String:kvs[2 * i + 1]] forKey:[NSString stringWithUTF8String:kvs[2 * i]] ]; } [AlibabaCloudRUM setUserExtraInfo:dictionary]; } void _alibabacloud_rum__set_custom_exception(const char *exception_name, const char *exception_causeby, const char *stack_trace) { if (NULL == exception_name || NULL == exception_causeby || NULL == stack_trace || strlen(exception_name) == 0 || strlen(exception_causeby) == 0 || strlen(stack_trace) == 0) { return; } [AlibabaCloudRUM setCustomException:[NSString stringWithUTF8String:exception_name] causeBy:[NSString stringWithUTF8String:exception_causeby] errorDump:[NSString stringWithUTF8String:stack_trace] ]; } void _alibabacloud_rum__set_custom_event(const char *event_name, const char *event_group, const char *snapshots, double value, uint32_t length, char **kvs) { NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; if (length > 0) { for (uint32_t i = 0; i < length; i++) { if (NULL == kvs[2 * i] || NULL == kvs[2 * i + 1] || strlen(kvs[2 * i]) == 0 || strlen(kvs[2 * i + 1]) == 0 ) { continue;; } [dictionary setObject:[NSString stringWithUTF8String:kvs[2 * i + 1]] forKey:[NSString stringWithUTF8String:kvs[2 * i]] ]; } } [AlibabaCloudRUM setCustomEvent:[NSString stringWithUTF8String:event_name] group:NULL == event_group ? nil : [NSString stringWithUTF8String:event_group] snapshots:NULL == snapshots ? nil : [NSString stringWithUTF8String:snapshots] value:value info:dictionary ]; } void _alibabacloud_rum__set_custom_log(const char *content, const char *name, const char *snapshots, const char *level, uint32_t length, char **kvs) { if (NULL == content || strlen(content) == 0) { return; } NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; if (length > 0) { for (uint32_t i = 0; i < length; i++) { if (NULL == kvs[2 * i] || NULL == kvs[2 * i + 1] || strlen(kvs[2 * i]) == 0 || strlen(kvs[2 * i + 1]) == 0 ) { continue;; } [dictionary setObject:[NSString stringWithUTF8String:kvs[2 * i + 1]] forKey:[NSString stringWithUTF8String:kvs[2 * i]] ]; } } [AlibabaCloudRUM setCustomLog:[NSString stringWithUTF8String:content] name:NULL == name ? nil : [NSString stringWithUTF8String:name] snapshots:NULL == snapshots ? nil : [NSString stringWithUTF8String:snapshots] level:NULL == level ? nil : [NSString stringWithUTF8String:level] info:dictionary ]; } #ifdef __cplusplus } #endif