/// :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: public BasicNetworkDriver(params INetworkParameter[] param) { m_NetworkParams = default(Parameters); object boxedParams = m_NetworkParams; foreach (var field in typeof(Parameters).GetFields(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public)) { for (int i = 0; i < param.Length; ++i) { if (field.FieldType.IsAssignableFrom(param[i].GetType())) { field.SetValue(boxedParams, param[i]); } } } m_NetworkParams = (Parameters)boxedParams; if (m_NetworkParams.bitStream.size == 0) { m_NetworkParams.bitStream.size = NetworkParameterConstants.DriverBitStreamSize; } if (m_NetworkParams.config.maxConnectAttempts == 0) { m_NetworkParams.config.maxConnectAttempts = NetworkParameterConstants.MaxConnectAttempts; } if (m_NetworkParams.config.connectTimeout == 0) { m_NetworkParams.config.connectTimeout = NetworkParameterConstants.ConnectTimeout; } if (m_NetworkParams.config.disconnectTimeout == 0) { m_NetworkParams.config.disconnectTimeout = NetworkParameterConstants.DisconnectTimeout; } m_BitStream = new BitStream(m_NetworkParams.bitStream.size, Allocator.Persistent); m_NetworkInterface = new T(); m_NetworkInterface.Initialize(); m_NetworkAcceptQueue = new NativeQueue <int>(Allocator.Persistent); m_ConnectionList = new NativeArray <Connection>(NetworkParameterConstants.MaximumConnectionsSupported, Allocator.Persistent); m_FreeList = new ConnectionFreeList(NetworkParameterConstants.MaximumConnectionsSupported); m_EventQueue = new NetworkEventQueue(NetworkParameterConstants.MaximumConnectionsSupported, NetworkParameterConstants.NetworkEventQLength); for (int i = 0; i < NetworkParameterConstants.MaximumConnectionsSupported; i++) { m_ConnectionList[i] = new Connection { Id = i, Version = 1 } } ; m_InternalState = new NativeArray <int>(1, Allocator.Persistent); m_PendingFree = new NativeQueue <int>(Allocator.Persistent); Listening = false; }
public void Initialize(int receiveQueueSize) { m_IPCQueue = new BucketQ <IPCData>(NetworkParameterConstants.MaximumConnectionsSupported, receiveQueueSize); m_FreeList = new ConnectionFreeList(NetworkParameterConstants.MaximumConnectionsSupported); m_IPCEndPoints = new Dictionary <int, ushort>(); }