streamhostprovider.java

来自「JBother是纯Java开发的Jabber(即时消息开源软件)客户端。支持群组」· Java 代码 · 共 87 行

JAVA
87
字号
/** * $RCSfile$ * $Revision: 2495 $ * $Date: 2005-05-30 10:14:25 -0500 (Mon, 30 May 2005) $ * * Copyright 2003-2004 Jive Software. * * All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */package org.jivesoftware.smackx.provider;import org.jivesoftware.smackx.packet.*;import org.jivesoftware.smack.provider.IQProvider;import org.jivesoftware.smack.packet.IQ;import org.xmlpull.v1.XmlPullParser;/** * this class implements a provider for <streamhost> and <streamhost-used> * packets. * * @author Lukasz Wiechec */public class StreamHostProvider implements IQProvider {    public static final String NAMESPACE = "http://jabber.org/protocol/bytestreams";    public IQ parseIQ(XmlPullParser parser) throws Exception {        boolean done = false;        int port = 8888;        String host = "";        String jid = "";        String sid = parser.getAttributeValue("","sid");;        StreamHost h = null;        StreamHostUsed u = null;        boolean streamhostused = false;        while (!done) {            int eventType = parser.next();            String elementName = parser.getName();            String namespace = parser.getNamespace();            if (eventType == XmlPullParser.START_TAG) {                if (elementName.equals("streamhost")) {                    try {                        port = Integer.parseInt(parser.getAttributeValue("","port"));                    }                    catch(NumberFormatException nfe) { }                    host = parser.getAttributeValue("","host");                    jid = parser.getAttributeValue("","jid");                    if(h == null) h = new StreamHost(sid);                    h.addHost(new StreamHost.Host(host, jid, port));                } else if (elementName.equals("streamhost-used")) {                    jid = parser.getAttributeValue("","jid");                    if(u == null) u = new StreamHostUsed(jid);                    streamhostused = true;                }            } else if (eventType == XmlPullParser.END_TAG && elementName.equals("query")) {                done = true;            }        }        if (host != null && !streamhostused) {            return h;        }        else {            return u;        }    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?