Esempio n. 1
0
 protected virtual void OnQuit( Message message )
 {
     var handler = Quit;
     if ( null != handler ) {
         handler( this, new MessageEventArgs( message ) );
     }
 }
Esempio n. 2
0
 private void OnResponse( Message message )
 {
     var handler = Response;
     if ( null != handler ) {
         handler( this, new MessageEventArgs( message ) );
     }
 }
Esempio n. 3
0
 // Event dispatchers
 protected virtual void OnError( Message message )
 {
     var handler = Error;
     if ( null != handler ) {
         handler( this, new MessageEventArgs( message ) );
     }
 }
Esempio n. 4
0
 private void OnUserMode( Message message )
 {
     DispatchUserMessage( message, "MODE:user" );
 }
Esempio n. 5
0
 //
 // Unknown event dispatcher
 //
 private void OnUnknown( Message message )
 {
     var handler = Unknown;
     if ( null != handler ) {
         handler( this, new MessageEventArgs( message ) );
     }
 }
Esempio n. 6
0
 private void OnRplTopicWhoTime( Message message )
 {
     message.Target = message.Args[ 0 ];
     DispatchChannelMessage( message, "RplTopicWhoTime" );
 }
Esempio n. 7
0
 private void OnRplCreationTime( Message message )
 {
     message.Target = message.Args[ 0 ];
     DispatchChannelMessage( message, "RplCreationTime" );
 }
Esempio n. 8
0
        private void DispatchUserMessage( Message message, string eventKey )
        {
            Dictionary<object, EventHandler<MessageEventArgs>> delegates = EventManager[ eventKey ];

            if ( !_users.ContainsKey( message.Target ) ) {
                return;
            }
            var target = _users[ message.Target ];

            if ( !delegates.ContainsKey( target ) ) {
                return;
            }
            var handler = delegates[ target ];

            object origin = this;
            if ( null != message.Origin && _users.ContainsKey( message.Origin.NickName ) ) {
                origin = _users[ message.Origin.NickName ];
            }

            if ( null != handler ) {
                handler( origin, new MessageEventArgs( message ) );
            }
        }
Esempio n. 9
0
 private void OnPrivMsg( Message message )
 {
     DispatchUserMessage( message, "PRIVMSG" );
 }
Esempio n. 10
0
 private void OnNotice( Message message )
 {
     DispatchUserMessage( message, "NOTICE" );
 }
Esempio n. 11
0
 private void OnJoin( Message message )
 {
     DispatchChannelMessage( message, "JOIN" );
 }
Esempio n. 12
0
 private void OnError( Message message )
 {
     DispatchUserMessage( message, "ERROR" );
 }
Esempio n. 13
0
 //
 // Channel-specific event dispatchers
 //
 private void OnChannelMode( Message message )
 {
     // TODO is Target correct?
     DispatchChannelMessage( message, "MODE:channel" );
 }
Esempio n. 14
0
 //
 // User-specific event dispatchers
 //
 private void OnCap( Message message )
 {
     DispatchUserMessage( message, "CAP" );
 }
 protected virtual void OnMessage( Message message )
 {
     var md = MessageDiscriminator;
     var handler = md[ message ] ?? md[ string.Empty ];
     if ( null != handler ) {
         handler( this, new MessageEventArgs( message ) );
     }
 }
Esempio n. 16
0
 public MessageEventArgs( Message message )
 {
     Message = message;
 }
Esempio n. 17
0
 private void OnQuit( Message message )
 {
     DispatchUserMessage( message, "QUIT" );
 }
Esempio n. 18
0
 private void OnRplChannelModeIs( Message message )
 {
     message.Target = message.Args[ 0 ];
     DispatchChannelMessage( message, "RplChannelModeIs" );
 }
        private void _ReadCallback( IAsyncResult ar )
        {
            int rc;

            try {
                rc = _buffer.EndRead( ar );
            }
            catch ( Exception e ) {
                Debug.Print( "ProtocolHandler._ReadCallback: EndRead threw exception:\n{0}", e );
                throw;
            }
            _buffer.Offset += rc;

            try {
                string temp = _leftOverPartialLineBuffer + new string( Encoding.UTF8.GetChars( _buffer.Buffer, 0, _buffer.Offset ) );
                _buffer.Clear( );
                List<string> lines = temp.Split( CommonDelimiters.CrLf, StringSplitOptions.None ).ToList( );
                int lastLine = lines.Count - 1;
                _leftOverPartialLineBuffer = lines[lastLine];
                lines.RemoveAt( lastLine );

                foreach ( var line in lines ) {
                    if ( ShowRawServerInput.Enabled ) {
                        Debug.Print( "> " + line );
                    }

                    var m = new Message( Server, line );
                    _journal.Add( m );
                }

                _StartRead( );
            }
            catch ( Exception e ) {
                Debug.Print( "ProtocolHandler._ReadCallback: caught exception while processing server input:\n{0}", e );
            }
        }