コード例 #1
0
    /// <summary> Event Notification function. This function is called when non-data events
    /// occur, E.G. Disconnection reported by the server.
    ///
    /// </summary>
    /// <param name="msg">The message containing the event
    /// </param>
    public override void  onEvent(UMDSMessage msg)
    {
        switch (msg.type)
        {
        case UMDSMessage.MSG_TYPE.LOSS:
            /*
             * Received when the server detects general MIM loss.
             */
            getUMDS().log(LOG_LEVEL.INFO, "umdspersistentreceive Event: General loss occurred prior to sequence number " + msg.seqnum);
            break;

        case UMDSMessage.MSG_TYPE.DISCONNECT:
            getUMDS().log(LOG_LEVEL.INFO, "umdspersistentreceive Event: " + msg);
            break;

        case UMDSMessage.MSG_TYPE.LOGIN_DENIED:
            getUMDS().log(LOG_LEVEL.INFO, "umdspersistentreceive Event: " + msg);
            auth_failed = true;
            break;

        case UMDSMessage.MSG_TYPE.SERVER_STOPPED:
            getUMDS().log(LOG_LEVEL.INFO, "umdspersistentreceive Event: " + msg);
            auth_failed = true;
            break;

        case UMDSMessage.MSG_TYPE.SOURCE_CREATE:
            getUMDS().log(LOG_LEVEL.INFO, "umdspersistentreceive Event: Source Create completed. ID " + msg.srcidx + " Status " + msg.status + "" + msg.status_str);
            break;

        case UMDSMessage.MSG_TYPE.RECEIVER_CREATE:
            createCount++;
            getUMDS().log(LOG_LEVEL.INFO, "umdspersistentreceive Event: Receiver create completed ID " + msg.srcidx + " Status " + msg.status + "" + msg.status_str);
            break;

        case UMDSMessage.MSG_TYPE.SOURCE_DELETE:
            getUMDS().log(LOG_LEVEL.INFO, "umdspersistentreceive Event: Source delete Completed. ID " + msg.srcidx + " Status " + msg.status + "" + msg.status_str);
            break;

        case UMDSMessage.MSG_TYPE.RECEIVER_DELETE:
            closeCount++;
            getUMDS().log(LOG_LEVEL.INFO, "umdspersistentreceive Event: Receiver delete Completed. ID " + msg.srcidx + " Status " + msg.status + "" + msg.status_str);
            break;

        case UMDSMessage.MSG_TYPE.CONNECT:
            getUMDS().log(LOG_LEVEL.INFO, "umdspersistentreceive Event: Client is (re)connected to server. Status " + msg.status + " " + msg.status_str);
            break;

        case UMDSMessage.MSG_TYPE.LOGIN_COMPLETE:
            getUMDS().log(LOG_LEVEL.INFO, "umdspersistentreceive Event: Client is Logged in to server. Status " + msg.status + " " + msg.status_str);
            break;

        case UMDSMessage.MSG_TYPE.LOGOUT_COMPLETE:
            getUMDS().log(LOG_LEVEL.INFO, "umdspersistentreceive Event: Client has Logged out of server. Status " + msg.status + " " + msg.status_str);
            break;

        default:
            getUMDS().log(LOG_LEVEL.INFO, "umdspersistentreceive Event: Unknown server connection event received " + msg);
            break;
        }
    }
コード例 #2
0
    /// <summary> The onResponse method is called by the UMDS client code. Application
    /// code should be added to handle various events.
    /// </summary>
    public override void  onResponse(UMDSMessage msg)
    {
        if (verbose)
        {
            System.Console.Out.WriteLine("onResponse called: type < " + msg.type + " >");
        }
        switch (msg.type)
        {
        case UMDSMessage.MSG_TYPE.RESPONSE:
            if (verbose)
            {
                try {
/*
 *                                              // This code block will display the verifiable content in the request from the UMDS response app.
 *                                              // The UM lbmres app does not provide this text.
 *                                              //
 *
 *                                              System.String res = Encoding.UTF8.GetString( msg.appdata );
 *                                              System.Console.Out.WriteLine( "Received Response to request <" + msg.requestID + "> len [" + msg.appdata.Length + "] RES Data <" + res + ">" );
 */
                    System.Console.Out.WriteLine("Received Response to request <" + msg.requestID + "> len [" + msg.appdata.Length + "]");
                } catch (System.Exception e) {
                }
            }
            Responses++;
            break;
        }
    }
コード例 #3
0
        public override void  onRequest(UMDSMessage msg)
        {
            if (verbose)
            {
                System.Console.Out.WriteLine("Yahoo! Received Request!");
            }

            try
            {
                if (msg.response_data != null)
                {
                    interval_byte_count += msg.response_data.Length;
                    if (verbose)
                    {
                        System.Console.Out.WriteLine("Request len " + msg.response_data.Length);
                    }
                    try {
/*
 *                                              // These code blocks will add verifiable content to the response,
 *                                              // As long as the corresponding code has been enabled in the umdsrequest app.
 *                                              //
 *                                              // Be sure to remove the string req definition below...
 *                                              //
 *
 *                                              System.String req_temp = Encoding.UTF8.GetString( msg.appdata );
 *                                              int breakAt = req_temp.IndexOf( ':' );
 *                                              System.String req = req_temp.Substring( 0, breakAt );
 *                                              System.Console.Out.WriteLine( "Request len [" + msg.appdata.Length + "] REQ Data <" + req + ">" );
 */
                        System.String req = Encoding.UTF8.GetString(msg.appdata);

                        System.String temp      = "UMDS RES " + total_rqmsg_count + "  - " + req;
                        byte []       dummy_req = System.Text.UTF8Encoding.UTF8.GetBytes(temp);
                        response_msg = new byte[dummy_req.Length + 25];
                        Array.Copy(dummy_req, 0,
                                   response_msg, 0,
                                   dummy_req.Length < response_msg.Length ? dummy_req.Length : response_msg.Length);

/*
 *                                              System.String res_temp = Encoding.UTF8.GetString( response_msg );
 *                                              breakAt = res_temp.IndexOf( ':' );
 *                                              System.String res = res_temp.Substring( 0, breakAt );
 *                                              System.Console.Out.WriteLine( "Response len [" + response_msg.Length + "] RES Data <" + res + ">" );
 */
                    } catch (System.Exception e) {
                    }
                    msg.respond(response_msg);
                }

                interval_msg_count++;
                total_rqmsg_count++;
            }
            catch (UMDSException e)
            {
                //UPGRADE_TODO: The equivalent in .NET for method 'java.lang.Throwable.toString' may return a different value. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1043'"
                System.Console.Error.WriteLine("Error sending response " + e);
            }
        }
コード例 #4
0
        /// <summary> The onEvent method is called by the UMDS client code. Application
        /// code should be added to handle various events. These events are
        /// typically errors.
        /// </summary>
        public override void  onEvent(UMDSMessage msg)
        {
            switch (msg.type)
            {
            case UMDSMessage.MSG_TYPE.LOSS:
                /*
                 * Received when the server detects general MIM loss.
                 */
                log(LOG_LEVEL.INFO, "AppReceiver.onEvent(): General loss occurred prior to sequence number " + msg.seqnum);
                break;

            case UMDSMessage.MSG_TYPE.DISCONNECT:
                log(LOG_LEVEL.INFO, "AppReceiver Event():" + msg);
                break;

            case UMDSMessage.MSG_TYPE.SERVER_DENIED:
                /*
                 * Received if the server denied creation of the object. The
                 * UMDS client code will unregister this object with the server
                 * upon returning. Applications will need to create a new
                 * receiver object to continue.
                 */
                log(LOG_LEVEL.INFO, "AppReceiver.onEvent(): Server denied receiver operation");
                break;

            case UMDSMessage.MSG_TYPE.RECEIVER_CREATE:
                /*
                 * Received after the server Acknowledges the creation of this receiver.
                 * Also received upon reconnection to the server.
                 */
                if (UMDSMessage.MSG_STATUS.CLOSE_PENDING == msg.status)
                {
                    log(LOG_LEVEL.INFO, "AppReceiver Receiver create with close pending: ID " + msg.srcidx + " Status " + msg.status + " : " + msg.status_str);
                }
                else
                {
                    log(LOG_LEVEL.INFO, "AppReceiver Receiver create completed ID " + msg.srcidx + " Status " + msg.status + " : " + msg.status_str);
                }
                break;

            case UMDSMessage.MSG_TYPE.RECEIVER_DELETE:
                /*
                 * Received after the server Acknowledges the deletion of this receiver. After
                 * receiving this event, no further messages will be received on this topic.
                 * (Messages may still be received after the call to close() returns, while
                 * the server is still processing the close / delete request.)
                 */
                log(LOG_LEVEL.INFO, "AppReceiver.onEvent(): Receiver has been deleted");
                break;

            default:
                log(LOG_LEVEL.INFO, "AppReceiver.onEvent(): Unknown server connection event received " + msg);
                break;
            }
        }
コード例 #5
0
 /// <summary> The onEvent method is called by the UMDS client code. Application
 /// code should be added to handle various events. These events are
 /// typically errors.
 /// </summary>
 public override void  onEvent(UMDSMessage msg)
 {
     if (UMDSMessage.MSG_TYPE.REQUEST_CANCELED == msg.type)
     {
         if (verbose)
         {
             log(LOG_LEVEL.INFO, "Request <" + msg.requestID + "> Timedout.");
         }
         RequestsCanceled++;
     }
 }
コード例 #6
0
        /// <summary> The onMessage method is called by the UMDS client code. Application
        /// logic should be added within this method for processing each message.
        ///
        /// This message is called from the UMDS client thread processing the
        /// socket. Blocking or complex code in this function can prevent the
        /// socket from being processed. Ensure that application logic is kept to
        /// a minimum, and hands off the received message to an application
        /// thread.
        /// </summary>
        public override void  onMessage(UMDSMessage msg)
        {
            /* Count this message and the number of bytes received */
            interval_msg_count++;
            if (msg.appdata != null)
            {
                interval_byte_count += msg.length();
            }
            if (msg.recovered)
            {
                total_rxmsg_count++;
            }

            /*
             * If the verbose option was used, dump data about the message.
             * Assume the message begins with text
             */
            if (verbose)
            {
                System.Console.Out.WriteLine(rcvnum + ": Yahoo! Received Data Message of Length " + msg.length()
                                             + " Sequence Number " + msg.seqnum
                                             + " source " + msg.srcidx
                                             + " topic " + msg.topic
                                             + " src_session_id " + msg.source_session_id
                                             + (msg.recovered?" -RX-":""));

                // Find the first 0 byte and create a string with the text
                if (msg.appdata.Length > 0)
                {
                    int zero;
                    for (zero = 0; zero < msg.appdata.Length && msg.appdata[zero] != 0; zero++)
                    {
                        ;
                    }
                    char [] appbs = new char[zero];
                    for (zero = 0; zero < msg.appdata.Length && msg.appdata[zero] != 0; zero++)
                    {
                        appbs[zero] = (char)msg.appdata[zero];
                    }
                    System.String appstr = new System.String(appbs);
                    System.Console.Out.WriteLine(appstr);
                }
            }
        }
コード例 #7
0
    /// <summary> Event Notification function. This function is called when non-data events
    /// occur, E.G. Disconnection reported by the server.
    ///
    /// </summary>
    /// <param name="msg">The message containing the event
    /// </param>
    public override void  onEvent(UMDSMessage msg)
    {
        switch (msg.type)
        {
        case UMDSMessage.MSG_TYPE.LOSS:
            /*
             * Received when the server detects loss on this topic.
             */
            getUMDS().log(LOG_LEVEL.WARN, "Message loss occurred sequence number " + msg.seqnum + " srcidx " + msg.srcidx);
            break;

        case UMDSMessage.MSG_TYPE.DISCONNECT:
            getUMDS().log(LOG_LEVEL.INFO, "UMDSResponse Event: " + msg);
            break;

        case UMDSMessage.MSG_TYPE.LOGIN_DENIED:
            getUMDS().log(LOG_LEVEL.INFO, "UMDSResponse Event: " + msg);
            auth_failed = true;
            break;

        case UMDSMessage.MSG_TYPE.SERVER_STOPPED:
            getUMDS().log(LOG_LEVEL.INFO, "UMDSResponse Event: " + msg);
            auth_failed = true;
            break;

        case UMDSMessage.MSG_TYPE.SOURCE_CREATE:
            getUMDS().log(LOG_LEVEL.INFO, "UMDSResponse Event: Source Create completed. ID " + msg.srcidx + " Status " + msg.status + " " + msg.status_str);
            break;

        case UMDSMessage.MSG_TYPE.RECEIVER_CREATE:
            createCount++;
            getUMDS().log(LOG_LEVEL.INFO, "UMDSResponse Event: Receiver create completed ID " + msg.srcidx + " Status " + msg.status + " " + msg.status_str);
            break;

        case UMDSMessage.MSG_TYPE.SOURCE_DELETE:
            getUMDS().log(LOG_LEVEL.INFO, "UMDSResponse Event: Source delete Completed. ID " + msg.srcidx + " Status " + msg.status + " " + msg.status_str);
            break;

        case UMDSMessage.MSG_TYPE.RECEIVER_DELETE:
            closeCount++;
            getUMDS().log(LOG_LEVEL.INFO, "UMDSResponse Event: Receiver delete Completed. ID " + msg.srcidx + " Status " + msg.status + " " + msg.status_str);
            break;

        case UMDSMessage.MSG_TYPE.CONNECT:
            getUMDS().log(LOG_LEVEL.INFO, "UMDSResponse Event: Client is (re)connected to server. Status " + msg.status + " " + msg.status_str);
            break;

        case UMDSMessage.MSG_TYPE.LOGIN_COMPLETE:
            getUMDS().log(LOG_LEVEL.INFO, "UMDSResponse Event: Client is Logged in to server. Status " + msg.status + " " + msg.status_str);
            break;

        case UMDSMessage.MSG_TYPE.LOGOUT_COMPLETE:
            getUMDS().log(LOG_LEVEL.INFO, "UMDSResponse Event: Client has Logged out of server. Status " + msg.status + " " + msg.status_str);
            break;

        default:
            /*
             * An unknown event. The application developer needs to
             * determine what the correct behaviour is with respect to their
             * application in this case.
             */
            getUMDS().log(LOG_LEVEL.WARN, "AppReceiver.onEvent(): Unknown event received " + msg.type);
            break;
        }
    }