예제 #1
0
        public HttpTransferManager(AppleLifecycle lifecycle,
                                   ILogger <IHttpTransferManager> logger,
                                   IPlatform platform,
                                   int maxConnectionsPerHost = 1)
        {
            this.platform = platform;
            this.logger   = logger;

            this.sessionDelegate = new ShinyUrlSessionDelegate(this, logger, platform);
            this.sessionConfig   = NSUrlSessionConfiguration.CreateBackgroundSessionConfiguration(SessionName);
            this.sessionConfig.HttpMaximumConnectionsPerHost = maxConnectionsPerHost;
            this.sessionConfig.RequestCachePolicy            = NSUrlRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData;

            var s = this.Session; // force load

            lifecycle.RegisterHandleEventsForBackgroundUrl((sessionIdentifier, completionHandler) =>
            {
                if (!SessionName.Equals(sessionIdentifier))
                {
                    return(false);
                }

                ShinyUrlSessionDelegate.CompletionHandler = completionHandler;
                return(true);
            });
        }
예제 #2
0
 public ShinyCoreServices(AppleLifecycle lifecycle,
                          IKeyValueStoreFactory store,
                          IRepository repository,
                          IServiceProvider services,
                          ISerializer serializer,
                          IMessageBus bus,
                          IJobManager jobManager)
     : this(store, repository, services, serializer, bus, jobManager)
 {
     this.Lifecycle = lifecycle;
 }
예제 #3
0
 public ShinyCoreServices(AppleLifecycle lifecycle,
                          IPlatform platform,
                          IKeyValueStoreFactory store,
                          IRepository repository,
                          IServiceProvider services,
                          ISerializer serializer,
                          IMessageBus bus)
     : this(platform, store, repository, services, serializer, bus)
 {
     this.Lifecycle = lifecycle;
 }
예제 #4
0
 public PushManager(INativeAdapter adapter,
                    PushContainer container,
                    ILogger <PushManager> logger,
                    AppleLifecycle lifecycle,
                    FirebaseConfiguration?config = null)
 {
     this.adapter   = adapter;
     this.container = container;
     this.logger    = logger;
     this.lifecycle = lifecycle;
     this.config    = config;
 }
예제 #5
0
        public JobManager(
            AppleLifecycle lifecycle,
            IPlatform platform,
            IServiceProvider container,
            IRepository repository,
            ILogger <IJobManager> logger
            ) : base(
                container,
                repository,
                logger
                )
        {
            this.platform = platform;

            lifecycle.RegisterForPerformFetch(this.OnBackgroundFetch);
        }
예제 #6
0
 public NativeAdapter(IPlatform platform, AppleLifecycle lifecycle)
 {
     this.platform  = platform;
     this.lifecycle = lifecycle;
 }