/// <summary> /// NetworkChannel 객체를 생성합니다. /// name은 이전에 생성된 NetworkChannel과 동일한 문자열을 사용할 수 없습니다. /// </summary> /// <param name="name">생성할 NetworkChannel의 고유한 이름.</param> /// <param name="sessionGenerator">Session 객체를 생성할 핸들러. null이면 기본 Session 객체가 생성됩니다.</param> /// <returns>생성된 NetworkChannel 객체</returns> public static NetworkChannel CreateChannel(string name, SessionGenerateHandler sessionGenerator) { lock (Channels) { if (Channels.Exists(name)) { throw new AegisException(AegisResult.AlreadyExistName, "'{0}' is already exists channel name.", name); } NetworkChannel channel = new NetworkChannel(name); if (sessionGenerator == null) { channel.SessionGenerator = delegate { return(GenerateSession("Aegis.Network.Session")); } } ; else { channel.SessionGenerator = sessionGenerator; } Channels.Add(name, channel); return(channel); } }
/// <summary> /// NetworkChannel 객체를 생성합니다. /// name은 이전에 생성된 NetworkChannel과 동일한 문자열을 사용할 수 없습니다. /// </summary> /// <param name="name">생성할 NetworkChannel의 고유한 이름.</param> /// <param name="sessionGenerator">Session 객체를 생성할 핸들러. null이면 기본 Session 객체가 생성됩니다.</param> /// <returns>생성된 NetworkChannel 객체</returns> public static NetworkChannel CreateChannel(string name, SessionGenerateHandler sessionGenerator) { lock (Channels) { if (Channels.Exists(name)) throw new AegisException(AegisResult.AlreadyExistName, "'{0}' is already exists channel name.", name); NetworkChannel channel = new NetworkChannel(name); if (sessionGenerator == null) channel.SessionGenerator = delegate { return GenerateSession("Aegis.Network.Session"); }; else channel.SessionGenerator = sessionGenerator; Channels.Add(name, channel); return channel; } }