public static Props Props(IBatchLoader batchLoader, IBatchSender batchSender, LoadBalancerSettings loadBalancerSettings, IRawPacketBatchParserActorFactory rawPacketBatchParserActorFactory) => Akka.Actor.Props.Create( () => new OfflineLoadBalancerActor(batchLoader, batchSender, loadBalancerSettings, rawPacketBatchParserActorFactory));
public void Start(CompleteHandler completeHandler, BatchProgressHandler progressHandler, ErrorHandler errorHandler, BatchSingleCompleteHandler singleCompleteHandler) { if (this._started) { return; } this._started = true; this.completeHandler = completeHandler; this.progressHandler = progressHandler; this.errorHandler = errorHandler; this.singleCompleteHandler = singleCompleteHandler; this.numLoaded = 0; int count = this._loaders.Count; if (count > 0) { for (int i = 0; i < count; i++) { IBatchLoader loader = this._loaders[i]; loader.Load(this.OnLoadComplete, this.OnLoadProgress, this.OnLoadError, this._useWWW, this._fromCache, this._sync); } } else { this.completeHandler?.Invoke(this); } }
public void Cancel() { int count = this._loaders.Count; for (int i = 0; i < count; i++) { IBatchLoader loader = this._loaders[i]; loader.Cancel(); this._progress[loader] = 0f; } this._started = false; }
private void OnLoadProgress(object sender, float progress) { IBatchLoader loader = ( IBatchLoader )sender; this._progress[loader] = progress; float sum = 0f; foreach (KeyValuePair <IBatchLoader, float> kv in this._progress) { sum += kv.Value; } this.progressHandler?.Invoke(this, sum / this.numItems, loader); }
public void Remove(IBatchLoader loader) { if (this._started) { Logger.Warn("Loader must be removed before start"); return; } if (!this._progress.ContainsKey(loader)) { return; } this._loaders.Remove(loader); this._progress.Remove(loader); }
public void Add(IBatchLoader loader) { if (this._started) { Logger.Warn("Loader must be added before start"); return; } if (this._progress.ContainsKey(loader)) { return; } this._loaders.Add(loader); this._progress[loader] = 0f; }
private void OnLoadError(object sender, string msg, object data) { IBatchLoader loader = ( IBatchLoader )sender; this._progress[loader] = 1f; this.errorHandler?.Invoke(this, msg); ++this.numLoaded; if (this._loaders.Count == this.numLoaded) { this._loaders.Clear(); this.completeHandler?.Invoke(this); } }
private void OnLoadComplete(object sender, AssetsProxy assetsProxy, object data) { IBatchLoader loader = ( IBatchLoader )sender; this._progress[loader] = 1f; this.singleCompleteHandler?.Invoke(this, assetsProxy, loader); ++this.numLoaded; if (this._loaders.Count == this.numLoaded) { this._loaders.Clear(); this.completeHandler?.Invoke(this); } }
public OfflineLoadBalancerActor(IBatchLoader batchLoader, IBatchSender batchSender, LoadBalancerSettings loadBalancerSettings, IRawPacketBatchParserActorFactory rawPacketBatchParserActorFactory) { this._batchLoader = batchLoader; this._loadBalancerSettings = loadBalancerSettings; this._rawPacketBatchParserActorFactory = rawPacketBatchParserActorFactory; this._batchSender = batchSender; this.StartWith(OfflineLoadBalancerStates.WaitingForProcessingRequest, null); this.SetupFSMWhen(); this.SetupFSMTransitions(); this.SetupPeriodicalGarbageCollecting(); }
private static void OnSingleLoadComplete(object sender, AssetsProxy assetsproxy, IBatchLoader loader, object data) { //CLogger.Log( $"batch:{( ( AssetsLoader )loader ).assetBundleName}" ); }
private static void OnPreloadProgress(object sender, float progress, IBatchLoader loader) { _progressHandler?.Invoke(null, progress * 0.5f); }
private void OnInternalProgress(object sender, float progress, IBatchLoader loader) { this.progressHandler?.Invoke(this, progress); }
private void OnInternalSingleComplete(object sender, AssetsProxy assetsProxy, IBatchLoader loader, object o) { if (assetsProxy.name == this._assetBundleName) { this._dec = assetsProxy.assetBundle; } else { this._res = assetsProxy.assetBundle; } }