Example #1
0
        protected virtual void OnStatusChanged(ConnectionStatus status, ConnectionStatusReason reason)
        {
            this.status = status;

            if (status == ConnectionStatus.Disconnected)
            {
                OnDisconnected(EventArgs.Empty);
            }
        }
Example #2
0
 private void OnAccountStatusChanged(McStatus status, McPresence presence,
                                     ConnectionStatusReason reason, string account_id)
 {
     Console.WriteLine(MSG_PREFIX + "OnAccountStatusChanged: status {0}, presence {1}, account {2}",
                       status.ToString(), presence.ToString(), account_id);
     //System.Threading.Thread.Sleep (5000);
     for (long i = 0; i < 1000000000; i++)
     {
     }
     Console.WriteLine(MSG_PREFIX + "Done looping");
 }
Example #3
0
 private void OnAccountStatusChanged(McStatus status, McPresence presence,
                                     ConnectionStatusReason reason, string account_id)
 {
     Console.WriteLine(MSG_PREFIX + "OnAccountStatusChanged: status {0}, presence {1}, reason {2}, " +
                       "account_id {3}", status, presence, reason, account_id);
 }
Example #4
0
        public void OnConnectionStateChanged(ConnectionStatus status, ConnectionStatusReason reason)
        {
            Console.WriteLine(MSG_PREFIX + "Connection state changed, Status: {0}, Reason: {1}", status, reason);

            if (status == ConnectionStatus.Connected)
            {
                try {
                    // show supported interfaces
                    string[] interfaces;
                    interfaces = iconn.GetInterfaces();

                    foreach (string s in interfaces)
                    {
                        Console.WriteLine(MSG_PREFIX + s);
                    }

                    string[] args = { "subscribe" };
                    uint[]   handles;
                    handles = iconn.RequestHandles(HandleType.List, args);

                    ISimplePresence ipresence = bus.GetObject <ISimplePresence> (BusName, op);
                    ipresence.PresencesChanged += OnPresencesChanged; // handle contacts changing status

                    ObjectPath chann_op;
                    chann_op = iconn.RequestChannel(Constants.CHANNEL_TYPE_CONTACTLIST, HandleType.List, handles[0], true);

                    IGroup contact_list = bus.GetObject <IGroup> (BusName, chann_op); // use Group interface with Channel

                    // get contacts
                    uint[] contacts; //, local_pending, remote_pending;
                    //contact_list.GetAllMembers(out contacts, out local_pending, out remote_pending);
                    contacts = contact_list.Members;
                    Console.WriteLine(MSG_PREFIX + "Got {0} Contacts!", contacts.Length);
                    string[] members_str;
                    members_str = iconn.InspectHandles(HandleType.Contact, contacts);

                    // get status information for contacts
                    IDictionary <uint, SimplePresence> dic = new Dictionary <uint, SimplePresence>();
                    dic = ipresence.GetPresences(contacts);

                    for (int i = 0; i < contacts.Length; i++)
                    {
                        if (dic.ContainsKey(contacts[i]))
                        {
                            Console.WriteLine(MSG_PREFIX + "Member: " + members_str[i]);
                            Console.WriteLine(MSG_PREFIX + "Presences Key: " + contacts[i].ToString());
                            Console.WriteLine(MSG_PREFIX + "Presences Status: " + dic[contacts[i]].Status);

                            if (members_str[i].Equals(ACCOUNT_BANSHEE_TEST2) && !dic[contacts[i]].Status.Equals("offine"))
                            {
                                myhandle = contacts[i]; // remember hardcoded handle so we can message later
                            }
                        }
                    }
                }
                catch (Exception e) {
                    Console.WriteLine(MSG_PREFIX + e);
                }

                Timer timer = new Timer();
                timer.Interval = 10000;     // delay logoff by 10 seconds
                timer.Elapsed += new ElapsedEventHandler(Disconnect);
                timer.Start();
            }

            if (status == ConnectionStatus.Disconnected)
            {
                running = false;
            }
        }
Example #5
0
 private void OnAccountStatusChanged(McStatus status, McPresence presence, 
                                      ConnectionStatusReason reason, string account_id)
 {
     Console.WriteLine (MSG_PREFIX + "OnAccountStatusChanged: status {0}, presence {1}, reason {2}, " +
                                         "account_id {3}", status, presence, reason, account_id);
 }