Sources/Core/SLSSdkFeature.m (72 lines of code) (raw):
//
// SLSSdkFeature.m
// AliyunLogCore
//
// Created by gordon on 2022/7/20.
//
#import "SLSSdkFeature.h"
#import "SLSUtils.h"
#import "AliyunLogProducer.h"
@interface SLSSdkFeature ()
@property(atomic, assign) bool hasPreInit;
@property(atomic, assign) bool hasInitialize;
@end
@implementation SLSSdkFeature
- (NSString *)name {
return @"";
}
- (NSString *)version {
return [SLSUtils getSdkVersion];
}
- (SLSSpanBuilder *) newSpanBuilder: (NSString *)spanName provider: (id<SLSSpanProviderProtocol>) provider processor: (id<SLSSpanProcessorProtocol>) processor {
return [[SLSSpanBuilder builder] initWithName:spanName provider:provider processor:processor];
}
- (SLSSpanBuilder *) newSpanBuilder: (NSString *) spanName {
SLSSpanBuilder *builder = [self newSpanBuilder:spanName provider:_configuration.spanProvider processor:_configuration.spanProcessor];
#if SLS_HOST_MAC
[builder setService:@"macOS"];
#elif SLS_HOST_TV
[builder setService:@"tvOS"];
#else
[builder setService:@"iOS"];
#endif
return builder;
}
- (void) preInit: (SLSCredentials *) credentials configuration: (SLSConfiguration *) configuration {
if (_hasPreInit) {
return;
}
_configuration = configuration;
[self onInitializeSender:credentials configuration:configuration];
[self onPreInit:credentials configuration:configuration];
_hasPreInit = YES;
}
- (void) initialize: (SLSCredentials *) credentials configuration: (SLSConfiguration *) configuration {
// should pre-init first
[self preInit: credentials configuration: configuration];
if (_hasInitialize) {
return;
}
[self onInitialize:credentials configuration:configuration];
_hasInitialize = YES;
[self onPostInitialize];
}
- (void)stop {
if (_hasPreInit) {
_hasPreInit = NO;
}
if (_hasInitialize) {
[self onStop];
_hasInitialize = NO;
[self onPostStop];
}
}
- (void) onInitializeSender: (SLSCredentials *) credentials configuration: (SLSConfiguration *) configuration {
}
- (void) onPreInit: (SLSCredentials *) credentials configuration: (SLSConfiguration *) configuration {
}
- (void) onInitialize: (SLSCredentials *) credentials configuration: (SLSConfiguration *) configuration {
}
- (void) onPostInitialize {
}
- (void) onStop {
}
- (void) onPostStop {
}
- (void)setCallback:(CredentialsCallback)callback {
_callback = callback;
}
@end