/// <summary>
 /// Deinitialization method
 /// </summary>
 public void Deinitialize()
 {
     if (parentManager == null)
     {
         return;
     }
     parentManager.ClientConnected    -= MasterManagerOnClientConnected;
     parentManager.ClientDisconnected -= MasterManagerOnClientDisconnected;
     parentManager = null;
 }
        /// <summary>
        /// Initialization method
        /// </summary>
        /// <param name="masterManager">Parent master manager that uses this load balancer</param>
        public void Initialize(MasterManager masterManager)
        {
            if (parentManager != null)
            {
                Log.Error($"{nameof(NetworkLoadBalancer)} is already initialized.");
                return;
            }

            masterLoad = InitialMasterLoad;
            clientLoads.Clear();
            masterManager.ClientConnected    += MasterManagerOnClientConnected;
            masterManager.ClientDisconnected += MasterManagerOnClientDisconnected;
            foreach (var client in masterManager.Clients)
            {
                MasterManagerOnClientConnected(client.Peer);
            }

            parentManager = masterManager;
        }