CNLiveHTTPProxyService.m 4.32 KB
//
//  CNLiveHTTPProxyService.m
//  CNLivePlayer_Example
//
//  Created by CNLive-zxw on 2019/7/26.
//  Copyright © 2019 153993236@qq.com. All rights reserved.
//

#import "CNLiveHTTPProxyService.h"
//缓存视频
#import <KSYHTTPCache/KSYHTTPProxyService.h>
#import <KSYHTTPCache/HTTPCacheDefines.h>
//数据库
#import "CNLivePlayerDBTool.h"
#import "CNLivePlayerDBModel.h"

@implementation CNLiveHTTPProxyService

+ (CNLiveHTTPProxyService *)manager {
    static id instance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        instance = [[self alloc] init];
    });
    
    return instance;
}

- (void)setCacheRoot:(NSString *)cacheRoot {
    [[KSYHTTPProxyService sharedInstance] setCacheRoot:cacheRoot];
}

- (NSString *)cacheRoot {
    return [[KSYHTTPProxyService sharedInstance] cacheRoot];
}

- (NSInteger)getCacheStrategy {
    return [[KSYHTTPProxyService sharedInstance] getCacheStrategy];
}

- (void)setMaxCacheSizeLimited:(long long)maxCacheSize {
    [[KSYHTTPProxyService sharedInstance] setMaxCacheSizeLimited:maxCacheSize];
}

- (long long)maxCacheSize {
    return [[KSYHTTPProxyService sharedInstance] maxCacheSize];
}

- (void)setMaxFilesCountLimited:(NSInteger)maxFilesCount {
    [[KSYHTTPProxyService sharedInstance] setMaxFilesCountLimited:maxFilesCount];
}

- (NSInteger)maxFilesCount {
    return [[KSYHTTPProxyService sharedInstance] maxFilesCount];
}

- (void)setMaxSingleFileSize:(long long)maxSingleFileSize {
    [[KSYHTTPProxyService sharedInstance] setMaxSingleFileSize:maxSingleFileSize];
}

- (void)setDisableCache:(BOOL)disableCache {
    [[KSYHTTPProxyService sharedInstance] setDisableCache:disableCache];
}

- (void)startServer {
    [[KSYHTTPProxyService sharedInstance] startServer];
}

- (void)stopServer {
    [[KSYHTTPProxyService sharedInstance] stopServer];
}

- (BOOL)isRunning {
    return [[KSYHTTPProxyService sharedInstance] isRunning];
}

- (NSString *)getProxyUrl:(NSString *)url {
    return [[KSYHTTPProxyService sharedInstance] getProxyUrl:url];
}

- (NSString *)getOriginalUrl:(NSString *)url {
    return [[KSYHTTPProxyService sharedInstance] getOriginalUrl:url];
}

- (NSString *)getProxyUrl:(NSString *)url newCache:(BOOL)newCache {
    return [[KSYHTTPProxyService sharedInstance] getProxyUrl:url newCache:newCache];
    
}

- (void)deleteAllCachesWithError:(NSError *__autoreleasing *)error {
    [[KSYHTTPProxyService sharedInstance] deleteAllCachesWithError:error];
    //清空数据缓存
    [[CNLivePlayerDBTool shared] clearTable];
}

- (void)deleteCacheForUrl:(NSURL *)url error:(NSError *__autoreleasing *)error {
    [[KSYHTTPProxyService sharedInstance] deleteCacheForUrl:url error:error];
    
}

/**
 * 删除某个contentId对应的缓存文件
 */
- (void)deleteCacheForContentId:(NSString *)contentId error:(NSError *__autoreleasing *)error {
    CNLivePlayerDBModel *model = [[CNLivePlayerDBTool shared] searchInTable:contentId];
    if (model) {
        [[KSYHTTPProxyService sharedInstance] deleteCacheForUrl:[NSURL URLWithString:model.url] error:error];
        [[CNLivePlayerDBTool shared] deleteTable:contentId];
    }
}

- (BOOL)isCacheCompleteForUrl:(NSURL *)url {
    return [[KSYHTTPProxyService sharedInstance] isCacheCompleteForUrl:url];
}


/**
 *  查看某个contentId缓存是否完成
 */
- (BOOL)isCacheCompleteForContentId:(NSString *)contentId {
    CNLivePlayerDBModel *model = [[CNLivePlayerDBTool shared] searchInTable:contentId];
    if (model) {
        return [[CNLiveHTTPProxyService manager] isCacheCompleteForUrl:[NSURL URLWithString:model.url]];
    }
    return NO;
}

- (NSArray *)getAllCachedFileListWithError:(NSError *__autoreleasing *)errors {
    return [[KSYHTTPProxyService sharedInstance] getAllCachedFileListWithError:errors];
}

- (NSArray *)getAllCachingFileListWithError:(NSError *__autoreleasing *)error {
    return [[KSYHTTPProxyService sharedInstance] getAllCachingFileListWithError:error];
}

- (NSString *)getCachedFilePathForUrl:(NSURL *)url {
    return [[KSYHTTPProxyService sharedInstance] getCachedFilePathForUrl:url];
}

- (NSArray *)getCacheFragmentForUrl:(NSURL *)url error:(NSError *__autoreleasing *)error {
    return [[KSYHTTPProxyService sharedInstance] getCacheFragmentForUrl:url error:error];
}

- (void)setHttpHeaders:(NSDictionary<NSString *,NSString *> *)headers {
    [[KSYHTTPProxyService sharedInstance] setHttpHeaders:headers];
}

@end