Adobe Access Objective-C API  4.0
This document describes the Objective-C API exposed for Adobe Access support on iOS.
 All Classes Files Functions Typedefs Enumerations Enumerator Properties
DRMInterface.h
Go to the documentation of this file.
00001 
00044 #ifndef DRMINTERFACE_H
00045 #define DRMINTERFACE_H
00046 
00047 #include <Foundation/Foundation.h>
00048 
00049 
00050 
00051 @class DRMLicense;
00052 @class DRMMetadata;
00053 @class DRMLicenseDomain;
00054 @class DRMPlaybackTimeWindow;
00055 @class DRMSession;
00056 
00057 #pragma mark Declarations
00058 typedef void (^DRMOperationError)(NSUInteger majorCode, NSUInteger minorCode, NSError* platformError);
00059 typedef void (^DRMOperationComplete)();
00060 typedef void (^DRMLicenseAcquired)(DRMLicense* license);
00061 typedef void (^DRMPlaylistUpdated)(NSURL * playlist, DRMMetadata * metadata);
00062 typedef void (^DRMAuthenticationComplete)(NSData* authenticationToken);
00063 
00067 typedef enum
00068 {
00069         UNKNOWN = 0,
00070         ANONYMOUS = 1,
00071         USERNAME_AND_PASSWORD = 2
00072 } DRMAuthenticationMethod;
00073 
00076 typedef enum
00078 {
00081         FORCE_REFRESH = 0,
00086         LOCAL_ONLY = 1, 
00090         ALLOW_SERVER = 2,  
00091 } DRMAcquireLicenseSettings;
00092 
00093 #pragma mark -
00094 
00095 
00099 
00100 
00101 
00102 @interface DRMManager : NSObject
00105         @property(nonatomic, readwrite, getter=getMaxOperationTime, setter=setMaxOperationTime:) NSUInteger maxOperationTime;
00106 
00109         +(DRMManager*) sharedManager;
00110 
00114         -(void) setAuthenticationToken:(DRMMetadata*)metadata authenticationDomain:(NSString*)authenticationDomain token:(NSData*)token error:(DRMOperationError)error complete:(DRMOperationComplete)complete;
00115         
00124         -(void) authenticate:(DRMMetadata*)metadata url:(NSString*)serverURL authenticationDomain:(NSString*)authenticationDomain username:(NSString*)username password:(NSString*)password error:(DRMOperationError)error complete:(DRMAuthenticationComplete)complete;
00125 
00131         -(void) acquirePreviewLicense:(DRMMetadata*)contentData error:(DRMOperationError)error acquired:(DRMLicenseAcquired)acquired;
00132 
00138         -(void) acquireLicense:(DRMMetadata*)contentData setting:(DRMAcquireLicenseSettings)setting error:(DRMOperationError)error acquired:(DRMLicenseAcquired)acquired;
00139 
00143         -(void) storeLicenseBytes:(NSData*)licenseBytes error:(DRMOperationError)error complete:(DRMOperationComplete)complete;
00144 
00147 
00148         -(void) resetDRM:(DRMOperationError)error complete:(DRMOperationComplete)complete;
00149 
00156         -(void) joinLicenseDomain:(DRMLicenseDomain*)licenseDomain forceRefresh:(BOOL)forceRefresh error:(DRMOperationError)error complete:(DRMOperationComplete)complete;
00157         -(void) leaveLicenseDomain:(DRMLicenseDomain*)licenseDomain error:(DRMOperationError)error complete:(DRMOperationComplete)complete;
00158         
00162     -(DRMSession*) createDRMSession:(DRMMetadata*)metadata playlist: (NSURL*) playlist error:(DRMOperationError)error complete:(DRMOperationComplete)complete;
00163 
00166         -(BOOL) isSupportedPlaylist:(NSURL*)url;
00167 
00176         -(void) getUpdatedPlaylist:(NSURL*)url error:(DRMOperationError)error updated:(DRMPlaylistUpdated)updated;
00177 @end // DRMManager
00178 
00183 
00184 @interface DRMMetadata : NSObject
00186         @property(nonatomic, readonly, retain, getter=getServerUrl) NSString* serverUrl;
00188         @property(nonatomic, readonly, retain, getter=getLicenseId) NSString* licenseId;
00190         @property(nonatomic, readonly, retain, getter=getPolicies) NSArray* policies; 
00191 
00192 - (id) initFromNSData:(NSData*)rawData error:(DRMOperationError)error;
00193 @end // DRMMetadata
00194 
00195 
00196 
00201 
00202 @interface DRMPolicy : NSObject
00203 
00211         @property(nonatomic, readonly, retain, getter=getDisplayName) NSString* displayName;
00214         @property(nonatomic, readonly, getter=getAuthenticationMethod) DRMAuthenticationMethod authenticationMethod;
00218         @property(nonatomic, readonly, retain, getter=getAuthenticationDomain) NSString* authenticationDomain;
00222         @property(nonatomic, readonly, retain, getter=getLicenseDomain) DRMLicenseDomain* licenseDomain;
00223 @end // DRMPolicy
00224 
00225 
00232 
00233 @interface DRMLicenseDomain : NSObject
00236         @property(nonatomic, readonly, getter=getAuthenticationMethod) DRMAuthenticationMethod authenticationMethod;
00240         @property(nonatomic, readonly, retain, getter=getAuthenticationDomain) NSString* authenticationDomain;
00242         @property(nonatomic, readonly, retain, getter=getServerUrl) NSString* serverUrl;
00243 @end // DRMLicenseDomain
00244 
00245 
00249 
00250  @interface DRMLicense : NSObject
00252         @property(nonatomic, readonly, retain, getter=getCustomProperties) NSDictionary* customProperties;
00253 
00255         @property(nonatomic, readonly, retain, getter=getLicenseStartDate) NSDate* licenseStartDate;
00256 
00258         @property(nonatomic, readonly, retain, getter=getLicenseEndDate) NSDate* licenseEndDate;
00259 
00261         @property(nonatomic, readonly, retain, getter=getOfflineStorageStartDate) NSDate* offlineStorageStartDate;
00262 
00264         @property(nonatomic, readonly, retain, getter=getOfflineStorageEndDate) NSDate* offlineStorageEndDate;
00265 
00270         @property(nonatomic, readonly, retain, getter=getPlaybackTimeWindow) DRMPlaybackTimeWindow* playbackTimeWindow;
00271 
00272         //- (id) initFromNSData:(NSData*)rawData;
00273         
00274         - (NSData*) toNSData;
00275 @end // DRMLicense
00276 
00280 @interface DRMPlaybackTimeWindow : NSObject
00281 
00283         @property(nonatomic, readonly, getter=getPlaybackPeriodInSeconds) NSUInteger playbackPeriodInSeconds;
00284 
00286         @property(nonatomic, readonly, retain, getter=getPlaybackStartDate) NSDate * playbackStartDate;
00287 
00289         @property(nonatomic, readonly, retain, getter=getPlaybackEndDate) NSDate * playbackEndDate;
00290 @end // DRMPlaybackTimeWindow
00291 
00292 
00296 
00297 @interface DRMSession : NSObject
00298         
00299 @end // DRMPlaybackTimeWindow
00300 
00301 
00302 #endif // DRMINTERFACE_H