Beispiel #1
0
        public bool CancelRequest()
        {
            if (CurrentAsk == null)
            {
                return(false);
            }
            CurrentAsk.stopListening();
            CurrentAsk = null;
            RaisePropertyChanged("CurrentAsk");

            //Send request to remove from queue here!

            Payload p = new Payload();

            p.request    = "cancel";
            p.sessionkey = client.SessionKey;
            p.sessionid  = client.SessionID;
            p.path       = path.Concat(new String[] { "audio" }).ToList();
            Random rnd = new Random();

            p.identity = rnd.Next(Int32.MaxValue);
            ResponsePayload r = new ResponsePayload();

            r.message = "Connection: timeout!";
            connector.Send(p);

            return(true);
        }
Beispiel #2
0
        private bool StopTalking()
        {
            audioCaller.Close();
            connector.ReceivedData -= CancelRequested;

            //Stop recording

            Payload p = new Payload();

            p.request    = "cancel";
            p.sessionkey = client.SessionKey;
            p.sessionid  = client.SessionID;
            p.path       = ClassRequested.path.Concat(new String[] { "audio" }).ToList();
            Random rnd = new Random();

            p.identity = packetIdentity = rnd.Next(Int32.MaxValue);
            ResponsePayload r = new ResponsePayload();

            r.message = "Connection: timeout!";
            Task k = Task.Factory.StartNew(() => { r = connector.SendAndReceive(p); });

            k.Wait(5000);
            if (r.status == "success")
            {
                return(true);
            }
            else
            {
                client.currentError = r.message;
                return(false);
            }
        }
Beispiel #3
0
        public bool list()
        {
            Payload p = Payload.makePayload();

            p.sessionid = this.SessionID;
            p.request   = "ls";
            connector.Send(p);
            ResponsePayload r = connector.waitForPayload();

            if (r.status == "success")
            {
                var k  = r.payload["list"];
                var aa = JsonConvert.DeserializeObject <Dictionary <String, Object> >(k.ToString());
                classAvailable.Clear();
                foreach (KeyValuePair <String, Object> s in aa)
                {
                    classAvailable.Add(new ClassItem(s.Key, s.Value.ToString()));     // Run on UI Thread
                }
                return(true);
            }
            else
            {
                if (r == null)
                {
                    r         = new ResponsePayload();
                    r.message = "Socket timeout!";
                }
                currentError = r.message;
                return(false);
            }
        }
Beispiel #4
0
        public bool login(string username, string password)
        {
            Payload p = Payload.makePayload();

            p.request = "login";
            p.addPayload("username", username);
            p.addPayload("password", password);
            p.addPayload("sessionkey", "");
            connector.Send(p);
            ResponsePayload r = connector.waitForPayload();

            if (r.status == "success")
            {
                identity = r.identity;
                Object k;
                r.payload.TryGetValue("sessionid", out k);
                sessionID = Convert.ToInt32(k);
                return(true);
            }
            else
            {
                currentError = r.message;
                return(false);
            }
        }
Beispiel #5
0
 private void startReceiveLoop()
 {
     Console.WriteLine("Now receiving");
     while (isConnected)
     {
         try
         {
             Console.WriteLine("Waiting for next packet... from " + groupEP.Address.ToString() + ":" + groupEP.Port);
             byte[]        bytes = Socket.Receive(ref groupEP);
             StringBuilder sb    = new StringBuilder();
             sb.Append(Encoding.ASCII.GetString(bytes, 0, bytes.Length));
             Console.WriteLine(sb.ToString());
             try
             {
                 ResponsePayload rp = JsonConvert.DeserializeObject <ResponsePayload>(sb.ToString());
                 if (queueList > 0)
                 {
                     //while (responseWaiter != null)
                     //{
                     //
                     //}
                     responseWaiter = rp;
                 }
             }
             catch
             {
                 Console.WriteLine("Received data is not a response payload!");
             }
             try
             {
                 NotifyPayload r = JsonConvert.DeserializeObject <NotifyPayload>(sb.ToString());
                 if (r.status == "notify")
                 {
                     var ee      = new ConnectorReceiveEventArgs(r);
                     var handler = ReceivedData;
                     if (handler != null)
                     {
                         handler(null, ee);
                     }
                 }
             }
             catch (Exception e)
             {
                 Console.WriteLine("Received data is not a notify payload! " + e.StackTrace);
             }
         }
         catch (SocketException ex)
         {
             isConnected = false;
             Console.WriteLine(ex.StackTrace);
         }
     }
 }
Beispiel #6
0
        public bool createGroup(String name)
        {
            Payload p = makePayload();

            p.request = "create_group";
            p.addPayload("name", name);
            connector.Send(p);
            ResponsePayload r = connector.waitForPayload();

            if (r.status == "success")
            {
                return(true);
            }
            else
            {
                currentError = r.message;
                return(false);
            }
        }
Beispiel #7
0
        public bool register(string username, string password)
        {
            Payload p = Payload.makePayload();

            p.request = "regist";
            p.addPayload("username", username);
            p.addPayload("password", password);
            connector.Send(p);
            ResponsePayload r = connector.waitForPayload();

            if (r.status == "success")
            {
                return(true);
            }
            else
            {
                currentError = r.message;
                return(false);
            }
        }
Beispiel #8
0
        public ResponsePayload waitForPayload()
        {
            int  i  = ++queueList;
            Task tk = Task.Factory.StartNew(() =>
            {
                while (responseWaiter == null && isConnected)
                {
                }
            });

            tk.Wait(TIMEOUTSEC * i);
            var r = responseWaiter;

            if (r == null)
            {
                r         = new ResponsePayload();
                r.message = isConnected ? "Timeout!": "Connection canceled";
            }
            responseWaiter = null;
            return(r);
        }
Beispiel #9
0
        private bool StopTalking()
        {
            audioCaller.Close();
            connector.ReceivedData -= CancelRequested;

            //Stop recording

            Payload p = new Payload();
            p.request = "cancel";
            p.sessionkey = client.SessionKey;
            p.sessionid = client.SessionID;
            p.path = ClassRequested.path.Concat(new String[] {"audio"}).ToList();
            Random rnd = new Random();
            p.identity = packetIdentity = rnd.Next(Int32.MaxValue);
            ResponsePayload r = new ResponsePayload();
            r.message = "Connection: timeout!";
            Task k = Task.Factory.StartNew(() => { r = connector.SendAndReceive(p); });
            k.Wait(5000);
            if (r.status == "success")
            {
                return true;
            }
            else
            {
                client.currentError = r.message;
                return false;
            }
        }
Beispiel #10
0
 internal bool list()
 {
     Payload p = Payload.makePayload();
     p.sessionid = this.SessionID;
     p.request = "ls";
     connector.Send(p);
     ResponsePayload r = connector.waitForPayload();
     if (r.status == "success")
     {
         var k = r.payload["list"];
         var aa = JsonConvert.DeserializeObject<Dictionary<String, Object>>(k.ToString());
         classAvailable.Clear ();
         foreach (KeyValuePair<String, Object> s in aa)
         {
                 classAvailable.Add(new ClassItem(s.Key, s.Value.ToString())); // Run on UI Thread
         }
         return true;
     }
     else
     {
         if (r == null)
         {
             r = new ResponsePayload();
             r.message = "Socket timeout!";
         }
         currentError = r.message;
         return false;
     }
 }
Beispiel #11
0
        public bool CancelRequest()
        {
            if (CurrentAsk == null) return false;
            CurrentAsk.stopListening();
            CurrentAsk = null;
            RaisePropertyChanged("CurrentAsk");

            //Send request to remove from queue here!

            Payload p = new Payload();
            p.request = "cancel";
            p.sessionkey = client.SessionKey;
            p.sessionid = client.SessionID;
            p.path = path.Concat(new String[] {"audio"}).ToList();
            Random rnd = new Random();
            p.identity = rnd.Next(Int32.MaxValue);
            ResponsePayload r = new ResponsePayload();
            r.message = "Connection: timeout!";
            connector.Send (p);

            return true;
        }
Beispiel #12
0
 private void startReceiveLoop()
 {
     Console.WriteLine ("Now receiving");
     while (isConnected)
     {
         try
         {
             byte[] bytes = Socket.Receive(ref groupEP);
             StringBuilder sb = new StringBuilder();
             sb.Append(Encoding.ASCII.GetString(bytes, 0, bytes.Length));
             Console.WriteLine(sb.ToString());
             try
             {
                 ResponsePayload rp = JsonConvert.DeserializeObject<ResponsePayload>(sb.ToString());
                 if (queueList > 0)
                 {
                     //while (responseWaiter != null)
                     //{
                     //
                     //}
                     responseWaiter = rp;
                 }
             }
             catch
             {
                 Console.WriteLine("Received data is not a response payload!");
             }
             try
             {
                 NotifyPayload r = JsonConvert.DeserializeObject<NotifyPayload>(sb.ToString());
                 if (r.status == "notify")
                 {
                     var ee = new ConnectorReceiveEventArgs(r);
                     var handler = ReceivedData;
                     if (handler != null) handler(null, ee);
                 }
             }
             catch (Exception e)
             {
                 Console.WriteLine("Received data is not a notify payload! " + e.StackTrace);
             }
         }
         catch (SocketException)
         {
             isConnected = false;
         }
     }
 }
Beispiel #13
0
 public ResponsePayload waitForPayload()
 {
     int i = ++queueList;
     Task tk = Task.Factory.StartNew(() =>
     {
         while (responseWaiter == null && isConnected)
         {
         }
     });
     tk.Wait(TIMEOUTSEC * i);
     var r = responseWaiter;
     if (r == null)
     {
         r = new ResponsePayload();
         r.message =  isConnected ? "Timeout!": "Connection canceled";
     }
     responseWaiter = null;
     return r;
 }