< Summary

Class:DCL.DataStore
Assembly:DataStore
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/DataStore/DataStore.cs
Covered lines:40
Uncovered lines:3
Coverable lines:43
Total lines:83
Line coverage:93% (40 of 43)
Covered branches:0
Total branches:0

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    {
 77439715        public static DataStore i { get; private set; } = new ();
 16
 98217        private readonly Dictionary<Type, object> dataStores = new ();
 18
 19        public void Set<T>(T data) where T: class
 20        {
 1055021            if (!dataStores.ContainsKey(typeof(T)))
 1054922                dataStores.Add(typeof(T), data);
 23            else
 124                dataStores[typeof(T)] = data;
 125        }
 26
 27        public T Get<T>() where T: class, new()
 28        {
 40362129            if (!dataStores.ContainsKey(typeof(T)))
 1054930                Set(new T());
 31
 40362132            return dataStores[typeof(T)] as T;
 33        }
 34
 35        public static void Clear() =>
 65636            i = new DataStore();
 37
 33038        public DataStore_World world => i.Get<DataStore_World>();
 3117539        public DataStore_Common common => i.Get<DataStore_Common>();
 420440        public DataStore_Realm realm => i.Get<DataStore_Realm>();
 251141        public DebugConfig debugConfig => i.Get<DebugConfig>();
 60542        public DataStore_Quests Quests => i.Get<DataStore_Quests>();
 437843        public DataStore_HUDs HUDs => i.Get<DataStore_HUDs>();
 544744        public DataStore_Player player => i.Get<DataStore_Player>();
 7939545        public DataStore_AvatarsLOD avatarsLOD => i.Get<DataStore_AvatarsLOD>();
 377246        public DataStore_VirtualAudioMixer virtualAudioMixer => i.Get<DataStore_VirtualAudioMixer>();
 3497247        public DataStore_Screen screen => i.Get<DataStore_Screen>();
 048        public DataStore_WSCommunication wsCommunication => i.Get<DataStore_WSCommunication>();
 266949        public DataStore_WorldObjects sceneWorldObjects => i.Get<DataStore_WorldObjects>();
 16734550        public DataStore_ExploreV2 exploreV2 => i.Get<DataStore_ExploreV2>();
 712551        public DataStore_FeatureFlag featureFlags => i.Get<DataStore_FeatureFlag>();
 1963152        public DataStore_Camera camera => i.Get<DataStore_Camera>();
 66053        public DataStore_Settings settings => i.Get<DataStore_Settings>();
 6654        public DataStore_SkyboxConfig skyboxConfig => i.Get<DataStore_SkyboxConfig>();
 055        public WorldTimer worldTimer => i.Get<WorldTimer>();
 80556        public DataStore_Performance performance => i.Get<DataStore_Performance>();
 10957        public DataStore_ExperiencesViewer experiencesViewer => i.Get<DataStore_ExperiencesViewer>();
 71658        public DataStore_Emotes emotes => i.Get<DataStore_Emotes>();
 41659        public DataStore_EmotesCustomization emotesCustomization => i.Get<DataStore_EmotesCustomization>();
 26560        public DataStore_SceneBoundariesChecker sceneBoundariesChecker => i.Get<DataStore_SceneBoundariesChecker>();
 57561        public DataStore_ECS7 ecs7 => i.Get<DataStore_ECS7>();
 98062        public DataStore_VoiceChat voiceChat => i.Get<DataStore_VoiceChat>();
 54363        public DataStore_TextureConfig textureConfig => i.Get<DataStore_TextureConfig>();
 5564        public DataStore_FriendNotifications friendNotifications => i.Get<DataStore_FriendNotifications>();
 70865        public DataStore_AvatarConfig avatarConfig => i.Get<DataStore_AvatarConfig>();
 51466        public DataStore_Rpc rpc => i.Get<DataStore_Rpc>();
 30067        public DataStore_Channels channels => i.Get<DataStore_Channels>();
 101768        public DataStore_WorldBlockers worldBlockers => i.Get<DataStore_WorldBlockers>();
 769        public DataStore_Notifications notifications => i.Get<DataStore_Notifications>();
 070        public DataStore_Outliner outliner => i.Get<DataStore_Outliner>();
 71    }
 72
 73    public struct DataStoreRef<T> where T: class, new()
 74    {
 75        private T @ref;
 76
 77        public T Ref => @ref ??= DataStore.i.Get<T>();
 78    }
 79
 80}
 81
 82
 83