当前位置: 首页>>代码示例>>C#>>正文


C# jabber.GetGroups方法代码示例

本文整理汇总了C#中jabber.GetGroups方法的典型用法代码示例。如果您正苦于以下问题:C# jabber.GetGroups方法的具体用法?C# jabber.GetGroups怎么用?C# jabber.GetGroups使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在jabber的用法示例。


在下文中一共展示了jabber.GetGroups方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: m_roster_OnRosterItem

        private void m_roster_OnRosterItem(object sender, jabber.protocol.iq.Item ri)
        {
            bool remove = (ri.Subscription == Subscription.remove);

            LinkedList nodelist = (LinkedList)m_items[ri.JID.ToString()];
            if (nodelist == null)
            {
                // First time through.
                if (!remove)
                {
                    nodelist = new LinkedList();
                    m_items.Add(ri.JID.ToString(), nodelist);
                }
            }
            else
            {
                // update to an existing item.  remove all of them, and start over.
                foreach (ItemNode i in nodelist)
                {
                    GroupNode gn = i.Parent as GroupNode;
                    i.Remove();
                    if ((gn != null) && (gn.Nodes.Count == 0))
                    {
                        m_groups.Remove(gn.GroupName);
                        gn.Remove();
                    }
                }
                nodelist.Clear();
                if (remove)
                    m_items.Remove(ri.JID.ToString());
            }

            if (remove)
                return;

            // add the new ones back
            Hashtable ghash = new Hashtable();
            Group[] groups = ri.GetGroups();
            for (int i=groups.Length-1; i>=0; i--)
            {
                if (groups[i].GroupName == "")
                    groups[i].GroupName = UNFILED;
            }

            if (groups.Length == 0)
            {
                groups = new Group[] { new Group(ri.OwnerDocument) };
                groups[0].GroupName = UNFILED;
            }

            foreach (Group g in groups)
            {
                GroupNode gn = AddGroupNode(g);
                // might have the same group twice.
                if (ghash.Contains(g.GroupName))
                    continue;
                ghash.Add(g.GroupName, g);

                ItemNode i = new ItemNode(ri);
                i.ChangePresence(m_pres[ri.JID]);
                nodelist.Add(i);
                gn.Nodes.Add(i);
            }
        }
开发者ID:eNoise,项目名称:cyclops-chat,代码行数:64,代码来源:RosterTree.cs

示例2: k_OnRosterItem

        void k_OnRosterItem(object sender, jabber.protocol.iq.Item ri)
        {
            if (users.ContainsKey(ri.JID.User))
            {
                if (ri.Subscription == jabber.protocol.iq.Subscription.remove)
                {
                    users[ri.JID.User].status = null;

                    if (UserChanged != null)
                        UserChanged(users[ri.JID.User]);
                    users.Remove(ri.JID.User);

                }
                else
                {
                    User us = users[ri.JID.User];
                    us.Nickname = ri.Nickname;
                    us.Group = ri.GetGroups().First().GroupName;
                    us.item = ri;
                }
            }
            else
            {
                User us = new User(ri.JID.User, ri.Nickname, ri.GetGroups().First().GroupName, "", ri);
                users.Add(ri.JID.User, us);
            }
        }
开发者ID:vrokolos,项目名称:LeagueChat,代码行数:27,代码来源:JabberManager.cs


注:本文中的jabber.GetGroups方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。