Пример #1
0
        /// <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);
            }
        }
Пример #2
0
        /// <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;
            }
        }