< Summary

Class:DCL.DataStore
Assembly:DataStore
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/DataStore/DataStore.cs
Covered lines:44
Uncovered lines:3
Coverable lines:47
Total lines:87
Line coverage:93.6% (44 of 47)
Covered branches:0
Total branches:0
Covered methods:41
Total methods:44
Method coverage:93.1% (41 of 44)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
DataStore()0%110100%
DataStore()0%110100%
Set[T](...)0%220100%
Get[T]()0%220100%
Clear()0%110100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/DataStore/DataStore.cs

#LineLine coverage
 1using DCL.ServerTime;
 2using System;
 3using System.Collections.Generic;
 4
 5namespace DCL
 6{
 7    public enum AppMode
 8    {
 9        DEFAULT,
 10        BUILDER_IN_WORLD_EDITION,
 11    }
 12
 13    public class DataStore
 14    {
 47990015        public static DataStore i { get; private set; } = new ();
 16
 108017        private readonly Dictionary<Type, object> dataStores = new ();
 18
 19        public void Set<T>(T data) where T: class
 20        {
 875221            if (!dataStores.ContainsKey(typeof(T)))
 875122                dataStores.Add(typeof(T), data);
 23            else
 124                dataStores[typeof(T)] = data;
 125        }
 26
 27        public T Get<T>() where T: class, new()
 28        {
 24598429            if (!dataStores.ContainsKey(typeof(T)))
 875130                Set(new T());
 31
 24598432            return dataStores[typeof(T)] as T;
 33        }
 34
 35        public static void Clear() =>
 55336            i = new DataStore();
 37
 16738        public DataStore_World world => i.Get<DataStore_World>();
 2338739        public DataStore_Common common => i.Get<DataStore_Common>();
 169140        public DataStore_Realm realm => i.Get<DataStore_Realm>();
 234941        public DebugConfig debugConfig => i.Get<DebugConfig>();
 5442        public DataStore_Quests Quests => i.Get<DataStore_Quests>();
 509943        public DataStore_HUDs HUDs => i.Get<DataStore_HUDs>();
 543344        public DataStore_Player player => i.Get<DataStore_Player>();
 3571245        public DataStore_AvatarsLOD avatarsLOD => i.Get<DataStore_AvatarsLOD>();
 310746        public DataStore_VirtualAudioMixer virtualAudioMixer => i.Get<DataStore_VirtualAudioMixer>();
 4684747        public DataStore_Screen screen => i.Get<DataStore_Screen>();
 048        public DataStore_WSCommunication wsCommunication => i.Get<DataStore_WSCommunication>();
 276849        public DataStore_WorldObjects sceneWorldObjects => i.Get<DataStore_WorldObjects>();
 8177950        public DataStore_ExploreV2 exploreV2 => i.Get<DataStore_ExploreV2>();
 1024551        public DataStore_FeatureFlag featureFlags => i.Get<DataStore_FeatureFlag>();
 1029852        public DataStore_Camera camera => i.Get<DataStore_Camera>();
 66253        public DataStore_Settings settings => i.Get<DataStore_Settings>();
 6954        public DataStore_SkyboxConfig skyboxConfig => i.Get<DataStore_SkyboxConfig>();
 055        public WorldTimer worldTimer => i.Get<WorldTimer>();
 74156        public DataStore_Performance performance => i.Get<DataStore_Performance>();
 12857        public DataStore_ExperiencesViewer experiencesViewer => i.Get<DataStore_ExperiencesViewer>();
 15958        public DataStore_EmotesCustomization emotesCustomization => i.Get<DataStore_EmotesCustomization>();
 21559        public DataStore_SceneBoundariesChecker sceneBoundariesChecker => i.Get<DataStore_SceneBoundariesChecker>();
 56060        public DataStore_ECS7 ecs7 => i.Get<DataStore_ECS7>();
 98161        public DataStore_VoiceChat voiceChat => i.Get<DataStore_VoiceChat>();
 27962        public DataStore_TextureConfig textureConfig => i.Get<DataStore_TextureConfig>();
 1863        public DataStore_FriendNotifications friendNotifications => i.Get<DataStore_FriendNotifications>();
 60964        public DataStore_AvatarConfig avatarConfig => i.Get<DataStore_AvatarConfig>();
 42965        public DataStore_Rpc rpc => i.Get<DataStore_Rpc>();
 33366        public DataStore_Channels channels => i.Get<DataStore_Channels>();
 87667        public DataStore_WorldBlockers worldBlockers => i.Get<DataStore_WorldBlockers>();
 768        public DataStore_Notifications notifications => i.Get<DataStore_Notifications>();
 069        public DataStore_Outliner outliner => i.Get<DataStore_Outliner>();
 17070        public DataStore_Mentions mentions => i.Get<DataStore_Mentions>();
 12671        public DataStore_BackpackV2 backpackV2 => i.Get<DataStore_BackpackV2>();
 55172        public DataStore_Wallet wallet => i.Get<DataStore_Wallet>();
 46173        public DataStore_MyAccount myAccount => i.Get<DataStore_MyAccount>();
 89374        public DataStore_ContentModeration contentModeration => i.Get<DataStore_ContentModeration>();
 75    }
 76
 77    public struct DataStoreRef<T> where T: class, new()
 78    {
 79        private T @ref;
 80
 81        public T Ref => @ref ??= DataStore.i.Get<T>();
 82    }
 83
 84}
 85
 86
 87