/// <summary>
        /// Creates a new network frame transmitter
        /// </summary>
        /// <param name="listener">Listener to use when determining which objects to include in a list</param>
        /// <returns></returns>
        public INetworkFrameListTransmitter CreateTransmitter(IFrameListTransmitterListener listener)
        {
            var transmitter = new NetworkFrameListTransmitter(this, _maxFrameLists, listener);

            _transmitters.Add(transmitter);

            return(transmitter);
        }
 public NetworkFrameListTransmitter(NetworkObjectListTransmitter listTransmitter, int maxFrameLists, IFrameListTransmitterListener listener)
 {
     _listTransmitter = listTransmitter ?? throw new ArgumentNullException(nameof(listTransmitter));
     _frameListLists  = new CircularBuffer <FrameList>(maxFrameLists);
     Listener         = listener ?? throw new ArgumentNullException(nameof(listener));
 }