Exemplo n.º 1
0
            public IEnumerator <BufferState> GetEnumerator()
            {
                int count = m_Count;

                for (int i = 0; i < count; i++)
                {
                    yield return(new BufferState(m_BufferManager.GetBuffer(m_BufferSize)));
                }
            }
Exemplo n.º 2
0
            public IEnumerator <SaeState> GetEnumerator()
            {
                int count = m_Count;

                for (int i = 0; i < count; i++)
                {
                    var buffer = m_BufferManager.GetBuffer(m_BufferSize);
                    var sae    = new SocketAsyncEventArgs();
                    sae.SetBuffer(buffer, 0, m_BufferSize);
                    var saeState = new SaeState(sae);
                    yield return(saeState);
                }
            }
Exemplo n.º 3
0
        public void AddConnection(Connection connection)
        {
            var character = characterManager.OwnCharacter;

            connectComplete.WaitOne();
            clientConnectingHandle.Reset();

            connection.Closed          += delegate { OnClientDisconnect(connection); };
            connection.MessageReceived += OnClientMessage;

            connection.Send(Helpers.CreateServerCommand(ServerCommandType.IDN, new ServerIdn {
                character = character.Name
            }));
            foreach (var message in introMessages)
            {
                connection.Send(message);
            }
            if (disconnectedStatus != null && connections.Count == 1)
            {
                SetStatus(customStatus ?? new ClientSta {
                    status = StatusEnum.Online
                });
            }

            foreach (var message in characterManager.GetJoinCommands())
            {
                connection.Send(message);
            }

            connection.Send(Helpers.CreateServerCommand(ServerCommandType.NLN,
                                                        new ServerNln {
                identity = character.Name, status = character.Status, gender = character.Gender
            }));

            foreach (var message in channelManager.GetJoinCommands())
            {
                connection.Send(message);
            }

            foreach (var message in buffer.GetBuffer())
            {
                connection.Send(message);
            }
            connections.TryAdd(connection, connection);
            connection.SetJoinComplete();
            clientConnectingHandle.Set();
        }