コード例 #1
0
        void IEventListener <ChunkStateExternal> .OnNotified(IEventSource <ChunkStateExternal> source, ChunkStateExternal evt)
        {
            // Unsubscribe from any further events
            ChunkStateManagerClient stateManager = (ChunkStateManagerClient)source;

            stateManager.Subscribe(this, evt, false);

            Assert.IsTrue(evt == ChunkStateExternal.Saved);
            if (evt == ChunkStateExternal.Saved)
            {
                if (!chunksToSave.Contains(stateManager.chunk))
                {
                    return;
                }
                SaveCompleteForChunk(stateManager.chunk);
            }
        }
コード例 #2
0
        public SaveProgress(ICollection <Chunk> chunks)
        {
            if (chunks.Count <= 0)
            {
                progress = 100;
                return;
            }

            chunksToSave.AddRange(chunks);
            totalChunksToSave = chunksToSave.Count;

            // Register at each chunk
            for (int i = 0; i < chunksToSave.Count; i++)
            {
                Chunk chunk = chunksToSave[i];
                ChunkStateManagerClient stateManager = (ChunkStateManagerClient)chunk.stateManager;
                stateManager.Subscribe(this, ChunkStateExternal.Saved, true);
            }
        }