zoukankan      html  css  js  c++  java
  • Spark研究笔记9:重要的工厂类PresenceManager(原创) CVT

    PresenceManager用于用户的在线状态和模式处理,类 Presence 位于org.jivesoftware.smack.packet,说明:

    public enum Type {
    
           /**
            * The user is available to receive messages (default).
            */
            available,
    
            /**
             * The user is unavailable to receive messages.
             */
            unavailable,
    
            /**
             * Request subscription to recipient's presence.
             */
            subscribe,
    
            /**
             * Grant subscription to sender's presence.
             */
            subscribed,
    
            /**
             * Request removal of subscription to sender's presence.
             */
            unsubscribe,
    
            /**
             * Grant removal of subscription to sender's presence.
             */
            unsubscribed,
    
            /**
             * The presence packet contains an error message.
             */
            error
        }
    
        /**
         * An enum to represent the presence mode.
         */
        public enum Mode {
    
            /**
             * Free to chat.
             */
            chat,
    
            /**
             * Available (the default).
             */
            available,
    
            /**
             * Away.
             */
            away,
    
            /**
             * Away for an extended period of time.
             */
            xa,
    
            /**
             * Do not disturb.
             */
            dnd
        }

    /**
         * Returns true if the user is online.
         *
         * @param jid the jid of the user.
         * @return true if online.
         */
        public static boolean isOnline(String jid) {
            final Roster roster = SparkManager.getConnection().getRoster();
            Presence presence = roster.getPresence(jid);
            return presence.isAvailable();
        }
    
        /**
         * Returns true if the user is online and their status is available or free to chat.
         *
         * @param jid the jid of the user.
         * @return true if the user is online and available.
         */
        public static boolean isAvailable(String jid) {
            final Roster roster = SparkManager.getConnection().getRoster();
            Presence presence = roster.getPresence(jid);
            return presence.isAvailable() && !presence.isAway();
        }
    
        /**
         * Returns true if the user is online and their mode is available or free to chat.
         *
         * @param presence the users presence.
         * @return true if the user is online and their mode is available or free to chat.
         */
        public static boolean isAvailable(Presence presence) {
            return presence.isAvailable() && !presence.isAway();
        }
    
        /**
         * 返回用户状态
         *
         * @param jid the users jid.
         * @return the users presence.
         */
        public static Presence getPresence(String jid) {
            final Roster roster = SparkManager.getConnection().getRoster();
            return roster.getPresence(jid);
        }
    
        /**
         * JID完整全称,例如(ex. derek@jivesoftware.com --> derek@jivesoftware.com/spark)
         */
        public static String getFullyQualifiedJID(String jid) {
            final Roster roster = SparkManager.getConnection().getRoster();
            Presence presence = roster.getPresence(jid);
            return presence.getFrom();
        }
  • 相关阅读:
    Visual Studio调试器项目设置
    Debug.Assert Everyone!
    WinDbg中的.natvis文件和类型模板
    已安装的.NET CLR版本之间的w3wp.exe崩溃WinDbg后期调试
    用于DLL注入的WinDbg扩展---!injectdll
    Wireshark中PIDs与网络包的关联
    又又一款抓dmp工具---ProcDump
    基于.NET框架版本在Windbg中加载sos的脚本
    未记录的WinDBG扩展命令---itoldyouso
    合并符号服务器
  • 原文地址:https://www.cnblogs.com/openfire/p/3047621.html
Copyright © 2011-2022 走看看