KollusStorage
KollusStorage Class
#import <KollusStorage.h>
콘텐츠 다운로드·저장·삭제·조회를 관리하는 클래스입니다.
Instance Methods
| 반환 타입 | 메서드 |
|---|---|
BOOL | setKollusPath: |
BOOL | startStorage: |
BOOL | startStorageWithFirst:error: |
BOOL | startStorageWithCheck: |
BOOL | startStorageWithNewPlayerID: |
NSString * | loadContentURL:error: |
NSString * | checkContentURL:error: |
BOOL | downloadContent:error: |
BOOL | removeContent:error: |
BOOL | removeCacheWithError: |
BOOL | downloadCancelContent:error: |
void | setNetworkTimeOut:retry: |
void | updateDownloadDRMInfo: |
void | setCacheSize: |
void | setBackgroundDownload: |
NSMutableArray * | contents |
void | sendStoredLms |
Properties
| 속성 | 설명 |
|---|---|
id<KollusStorageDelegate> delegate | 다운로드 상태 정보 델리게이트 |
NSString * applicationVersion | Kollus SDK 버전 |
NSString * applicationDeviceID | Kollus 플레이어 디바이스 ID |
NSString * applicationKey | Kollus SDK 인증 키 (카테노이드에서 발급) |
NSString * applicationBundleID | 애플리케이션 Bundle ID (예: com.yourcompany.applicationname) |
NSString * keychainGroup | 키체인 그룹 (예: com.yourcompany.shared) |
NSDate * applicationExpireDate | Kollus SDK 유효날짜 (카테노이드에서 발급) |
NSString * storagePath | Kollus SDK 폴더 |
long long storageSize | 다운로드 콘텐츠 총 크기 (bytes) |
long long cacheDataSize | 캐시 데이터 총 크기 (bytes) |
NSInteger serverPort | 하이브리드 앱에서 사용되는 포트 번호 |
NSString * extraDrmParam | 동적 DRM 파라미터 |
NSString * appUserAgent | UserAgent |
NSString * deviceType | 디바이스 타입 (kp-mobile, kp-tablet) |
Method Details
(NSString*) checkContentURL: (NSString *) URL error: (NSError **) error
전달된 URL에 해당하는 콘텐츠의 다운로드 여부와 미디어 콘텐츠 키(MCK)를 확인합니다.
| 파라미터 | 설명 |
|---|---|
URL | 콘텐츠 URL |
error | 에러 상세 |
- 반환값: 다운로드된 콘텐츠가 있는 경우, 콘텐츠의 media content key
(NSMutableArray*) contents
다운로드 콘텐츠 정보 배열
(BOOL) downloadCancelContent: (NSString *) mediaContentKey error: (NSError **) error
콘텐츠 다운로드 중지
| 파라미터 | 설명 |
|---|---|
mediaContentKey | 다운로드를 중지할 콘텐츠 키 |
error | 에러 상세 |
- 반환값
YES: 성공NO: 실패
(BOOL) downloadContent: (NSString *) mediaContentKey error: (NSError **) error
콘텐츠 다운로드 (콘텐츠 인덱스로 다운로드)
| 파라미터 | 설명 |
|---|---|
mediaContentKey | 다운로드 할 콘텐츠 키 |
error | 에러 상세 |
- 반환값
YES: 성공NO: 실패
(NSString *) loadContentURL: (NSString *) URL error: (NSError **) error
콘텐츠 다운로드 초기화
| 파라미터 | 설명 |
|---|---|
URL | 다운로드 초기화 할 콘텐츠 URL |
error | 에러 상세 |
- 반환값: 초기화 완료된 콘텐츠 키 (
mediaContentKey)
(BOOL) removeCacheWithError: (NSError **) error
스트리밍 콘텐츠 캐시데이터 삭제
| 파라미터 | 설명 |
|---|---|
error | 에러 상세 |
- 반환값
YES: 성공NO: 실패
(BOOL) removeContent: (NSString *) mediaContentKey error: (NSError **) error
특정 콘텐츠 삭제
| 파라미터 | 설명 |
|---|---|
mediaContentKey | 삭제할 콘텐츠 키 |
error | 에러 상세 |
- 반환값
YES: 성공NO: 실패
(void) sendStoredLms
미전송된 LMS data 전송
(void) setBackgroundDownload: (BOOL) bBackground
스토리지 콘텐츠의 백그라운드 다운로드 사용 여부를 설정합니다.
| 파라미터 | 설명 |
|---|---|
bBackground | YES: 백그라운드 다운로드 활성화, NO: 비활성화 |
(void) setCacheSize: (NSInteger) cacheSizeMB
스토리지 캐시 크기 설정
| 파라미터 | 설명 |
|---|---|
cacheSizeMB | 스트리밍 콘텐츠 캐시 크기 (MB) |
(void) setNetworkTimeOut: (NSInteger) timeOut retry: (NSInteger) retryCount
스토리지 네트워크 Timeout 설정
| 파라미터 | 설명 |
|---|---|
timeOut | Timeout 값 (sec) |
retryCount | 재시도 횟수 |
(BOOL) setKollusPath: (NSString *)path
스토리지 폴더 설정
⚠️ 주의: 이 메서드는 신규 앱에서만 사용해야 합니다. 그렇지 않으면 기존에 다운로드된 콘텐츠를 볼 수 없습니다.
startStorage 호출 전에 사용해야 합니다. 기본 경로는 Document 폴더입니다.
| 파라미터 | 설명 |
|---|---|
path | kollus sdk에서 사용하는 폴더 |
error | 에러 상세 |
- 반환값
YES: 성공NO: 실패
(BOOL) startStorage: (NSError **) error
KollusStorage 시작
⚠️ 주의: 이 메서드를 호출하지 않으면 콘텐츠 정보 배열(contents)이 nil로 반환됩니다.
| 파라미터 | 설명 |
|---|---|
error | 에러 상세 |
- 반환값
YES: 성공NO: 실패
(BOOL) startStorageWithCheck: (NSError **) error
KollusStorage 시작
⚠️ 주의: 이 메서드를 호출하지 않으면 콘텐츠 개수(contentsCount)가 0으로 반환됩니다.
키체인에서 플레이어 ID 획득에 실패한 경우, 최초 실행이면 새로 생성하여 처리하고, 최초 실행이 아니면 세 번 요청 모두 실패 시 에러 처리됩니다.
| 파라미터 | 설명 |
|---|---|
error | 에러 상세 |
- 반환값
YES: 성공NO: 실패
(BOOL) startStorageWithFirst: (BOOL) first error: (NSError **) error
KollusStorage 시작
⚠️ 주의: 이 메서드를 호출하지 않으면 콘텐츠 개수(contentsCount)가 0으로 반환됩니다.
| 파라미터 | 설명 |
|---|---|
first | 설치 후 최초 실행 |
error | 에러 상세 |
- 반환값
YES: 성공NO: 실패
(BOOL) startStorageWithNewPlayerID: (NSError **) error
KollusStorage 시작
⚠️ 주의: 이 메서드를 호출하지 않으면 콘텐츠 개수(contentsCount)가 0으로 반환됩니다.
이 메서드는 플레이어 ID를 새로 생성하여 키체인에 등록하고 사용합니다.
| 파라미터 | 설명 |
|---|---|
error | 에러 상세 |
- 반환값
YES: 성공NO: 실패
(void) updateDownloadDRMInfo: (BOOL) bAll
DRM 콘텐츠 목록 업데이트
| 파라미터 | 설명 |
|---|---|
bAll | YES: 모든 콘텐츠 업데이트, NO: 만기된 콘텐츠만 업데이트 |
Property Details
| 속성 | 설명 |
|---|---|
(NSString*) applicationBundleID[read, write, nonatomic, copy] | 애플리케이션 Bundle ID(ex:com.yourcompany.applicationname) |
(NSString*) applicationDeviceID[read, nonatomic, copy] | Kollus 플레이어 디바이스 ID |
(NSDate*) applicationExpireDate[read, write, nonatomic, copy] | Kollus SDK 유효 날짜 (카테노이드에서 발급) |
(NSString*) storagePath[readonly, nonatomic, copy] | Kollus SDK 폴더 |
(NSString*) applicationKey[read, write, nonatomic, copy] | Kollus SDK 인증 키 (카테노이드에서 발급) |
(NSString*) applicationVersion[read, nonatomic, copy] | Kollus SDK 버전 |
(NSString*) appUserAgent[read, nonatomic, copy] | UserAgent |
(long long) cacheDataSize[read, nonatomic, unsafe_unretained] | 캐시 데이터 총 크기 (bytes) |
(id<KollusStorageDelegate>) delegate[read, write, nonatomic, weak] | 다운로드 상태정보 델리게이트 |
(NSString*) deviceType[read, nonatomic, copy] | 디바이스 유형 (kp-mobile, kp-tablet) |
(NSString*) extraDrmParam[read, write, nonatomic, copy] | 동적 DRM 파라미터 |
(NSString*) keychainGroup[read, write, nonatomic, copy] | 키체인 그룹 (ex: com.yourcompany.shared) |
(NSInteger) serverPort[read, write, nonatomic, assign] | 하이브리드 앱에서 사용되는 포트 번호 |
(long long) storageSize[read, nonatomic, unsafe_unretained] | 다운로드 콘텐츠 총 크기 (bytes) |
KollusStorageDelegate Protocol
#import <KollusStorageDelegate.h>
다운로드 진행 상태와 DRM 콜백 이벤트를 수신하는 프로토콜입니다.
Instance Methods
| 반환 타입 | 메서드 |
|---|---|
void | kollusStorage:downloadContent:error: |
void | kollusStorage:request:json:error: |
void | kollusStorage:cur:count:error: |
void | kollusStorage:lmsData:resultJson: |
void | onSendCompleteStoredLms:failCount: |
Method Details
(void) kollusStorage: (KollusStorage *) kollusStorage cur: (int) cur count: (int) count error: (NSError *) error
DRM 콘텐츠 목록을 일괄 업데이트하는 중 각 콘텐츠 업데이트가 완료될 때 호출됩니다.
| 파라미터 | 설명 |
|---|---|
kollusStorage | KollusStorage ID |
cur | 현재 항목 |
count | 전체 콘텐츠 개수 |
error | 에러 정보: nil이 아닌 경우 에러 발생 |
(void) kollusStorage: (KollusStorage *) kollusStorage downloadContent: (KollusContent *) content error: (NSError *) error
콘텐츠 다운로드 중 상태 변화가 있는 경우 호출됩니다.
| 파라미터 | 설명 |
|---|---|
kollusStorage | KollusStorage ID |
content | 상태 변화가 있는 콘텐츠 정보 |
error | 에러 정보: nil이 아닌 경우 에러 발생 |
(void) kollusStorage: (KollusStorage *) kollusStorage lmsData: (NSString *) lmsData resultJson: (NSDictionary *) resultJsonLMS
LMS 콜백 처리 후 호출됩니다.
| 파라미터 | 설명 |
|---|---|
kollusStorage | KollusStorage ID |
lmsData | LMS data 정보 |
resultJson | LMS result 정보 |
(void) kollusStorage: (KollusStorage *) kollusStorage request: (NSDictionary *) request json: (NSDictionary *) json error: (NSError *) error
DRM 다운로드 콜백 처리 후 호출됩니다.
| 파라미터 | 설명 |
|---|---|
kollusStorage | KollusStorage ID |
request | request 정보 |
json | response 받은 json |
error | 에러 정보: nil이 아닌 경우 에러 발생 |
(void) onSendCompleteStoredLms: (int) successCount failCount: (int) failCount
미전송 LMS 콜백 완료 후 호출됩니다.
| 파라미터 | 설명 |
|---|---|
successCount | LMS 전송 성공 횟수 |
failCount | LMS 전송 실패 횟수 |