< Summary

Class:ViewPool[T]
Assembly:ExploreHUD
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ExploreHUD/Scripts/ViewPool.cs
Covered lines:20
Uncovered lines:1
Coverable lines:21
Total lines:50
Line coverage:95.2% (20 of 21)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
ViewPool(...)0%220100%
Dispose()0%330100%
GetView()0%220100%
PoolView(...)0%110100%
GetEnumerator()0%2100%
CreateView()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/HUD/ExploreHUD/Scripts/ViewPool.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using UnityEngine;
 3using System;
 4
 5internal class ViewPool<T> : IDisposable where T : MonoBehaviour
 6{
 7    T baseView;
 128    Queue<T> pooledHotScenCells = new Queue<T>();
 9
 1210    public ViewPool(T baseView, int prewarm = 0)
 11    {
 1212        this.baseView = GameObject.Instantiate(baseView, baseView.transform.parent);
 1213        this.baseView.gameObject.SetActive(false);
 14
 1215        PoolView(baseView);
 8816        for (int i = 0; i < prewarm - 1; i++)
 17        {
 3218            PoolView(CreateView());
 19        }
 1220    }
 21
 22    public void Dispose()
 23    {
 5024        while (pooledHotScenCells.Count > 0)
 25        {
 3826            var obj = pooledHotScenCells.Dequeue();
 3827            if (obj != null)
 28            {
 3829                GameObject.Destroy(obj.gameObject);
 30            }
 31        }
 1232        GameObject.Destroy(baseView.gameObject);
 1233    }
 34
 35    public T GetView()
 36    {
 837        T ret = pooledHotScenCells.Count > 0 ? pooledHotScenCells.Dequeue() : CreateView();
 838        return ret;
 39    }
 40
 41    public void PoolView(T cellView)
 42    {
 4643        cellView.gameObject.SetActive(false);
 4644        pooledHotScenCells.Enqueue(cellView);
 4645    }
 46
 047    public Queue<T>.Enumerator GetEnumerator() { return pooledHotScenCells.GetEnumerator(); }
 48
 3249    T CreateView() { return GameObject.Instantiate(baseView, baseView.transform.parent); }
 50}