/**
             *@brief handle connects and disconnects
             */
            private void Run()
            {
                byte[] data = new byte[native.Networking.kPacketSize];
                native.Networking.ErrorMessage msg = 0;
                Message message = new Message();
                UInt32  id      = 0;

                while (run_)
                {
                    if (native.Networking.SNetIsConnected() == false)
                    {
                        msg = native.Networking.SNetEditorConnect("localhost", 8008);
                        native.Networking.SNetRetrievePacket(ref id, data, (uint)data.Length);
                    }
                    else
                    {
                        NotificationEventArgs args = new NotificationEventArgs(message,
                                                                               (uint)Notifications.kConnected,
                                                                               id <MessageHandler> .type_id_);
                        OnNotification handler = notify_subscribers;
                        handler?.Invoke(this, args);
                        ProcessMessages();
                    }
                    Thread.Sleep(1000 / 30);
                }
            }
示例#2
0
 /**
  *@brief handle incomming notifiactaion from the message handler
  *@param[in] sender (object) the original sender of the notification
  *@param[in] e (sulphut.editor.NotificationEventArgs) event aruments passed when the event was fired
  */
 private void HandleNetworkedMessage(object sender, NotificationEventArgs e)
 {
     if (e.type_id == id <MessageHandler> .type_id_)
     {
         switch ((MessageHandler.Notifications)e.notification_id)
         {
         case MessageHandler.Notifications.kConnected:
             byte[] data = Utils.StructToBytes(engine_.window.ToInt64());
             native.Networking.ErrorMessage msg =
                 native.Networking.SNetSendData((UInt32)native.NetworkMessages.kWindowHandle,
                                                data,
                                                (uint)data.Length);
             break;
         }
     }
 }