⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 relaytransport.java

📁 jxta_src_2.41b jxta 2.41b 最新版源码 from www.jxta.org
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        }    }        /**     * {@inheritDoc}     **/    public int startApp(String[] args) {        EndpointService endpoint = group.getEndpointService();                if (null == endpoint) {            if (LOG.isEnabledFor(Level.WARN)) {                LOG.warn("Stalled until there is an endpoint service");            }                        return START_AGAIN_STALLED;        }                // XXX bondolo 20041025 Server depends upon discovery and its non-optional.        DiscoveryService discovery = group.getDiscoveryService();                if (null == discovery) {            if (LOG.isEnabledFor(Level.WARN)) {                LOG.warn("Stalled until there is a discovery service");            }                        return START_AGAIN_STALLED;        }                endpoint.addIncomingMessageListener(this, serviceName, null);                if (LOG.isEnabledFor(Level.DEBUG)) {            LOG.debug("Message Listener added " + serviceName);        }                if (relayServer != null) {            if (!relayServer.startServer()) {                return -1; // cannot start            }        }                if (relayClient != null) {            if (!relayClient.startClient()) {                return -1; // cannot start            }        }                if (LOG.isEnabledFor(Level.INFO)) {            LOG.info("Relay Message Transport started");        }                return 0;    }        /**     * {@inheritDoc}     **/    public void stopApp() {        // remove listener        EndpointService endpoint = group.getEndpointService();                if (endpoint == null) {            if (LOG.isEnabledFor(Level.WARN)) {                LOG.warn("could not get EndpointService");            }        } else {            endpoint.removeIncomingMessageListener(serviceName, null);                        if (LOG.isEnabledFor(Level.DEBUG)) {                LOG.debug("Message Listener removed " + serviceName);            }        }                if (relayServer != null) {            relayServer.stopServer();        }                if (relayClient != null) {            relayClient.stopClient();        }                if (LOG.isEnabledFor(Level.INFO)) {            LOG.info("Relay Message Transport stopped");        }    }        /**     * {@inheritDoc}     **/    public void processIncomingMessage(Message message, EndpointAddress srcAddr, EndpointAddress dstAddr) {        if (LOG.isEnabledFor(Level.DEBUG)) {            LOG.debug("Started for " + message + "\tsrc=" + srcAddr);        }                MessageElement element = null;                // check if it is a request        element = message.getMessageElement(RelayTransport.RELAY_NS, REQUEST_ELEMENT);                if (element != null) {            // this is a request, pass it to the relayServer            if (relayServer != null) {                relayServer.handleRequest(message, dstAddr);            }        } else {            // check if it is a response            element = message.getMessageElement(RelayTransport.RELAY_NS, RESPONSE_ELEMENT);                        if (element != null) {                // this is a response, pass it to the relayClient                if (relayClient != null) {                    relayClient.handleResponse(message, dstAddr);                }            }        }    }        protected PeerGroup getGroup() {        return group;    }        protected String getServiceName() {        return serviceName;    }        // This is for reference only, the Desktop client implementation does not    // use that server feature    static Message createPIDRequestMessage() {        Message message = new Message();                message.addMessageElement(RELAY_NS, PID_REQUEST_ELEMENT);                return message;    }        static Message createPIDResponseMessage(String pidStr) {                Message message = new Message();                message.addMessageElement(RELAY_NS, PID_RESPONSE_ELEMENT);        setString(message, PEERID_ELEMENT, pidStr);                return message;    }        static Message createConnectMessage(long lease, boolean doReturnAdv, boolean doFlushQueue) {        Message message = new Message();                String request = createConnectString(lease, doReturnAdv, doFlushQueue);                setString(message, REQUEST_ELEMENT, request);                return message;    }        static String createConnectString(long lease, boolean doReturnAdv, boolean doFlushQueue) {                String request = CONNECT_REQUEST;                if (lease > 0) {            request += "," + Long.toString(lease);        } else {            request += ",";        }                if (doFlushQueue) {            request += ",flush";        } else {            request += ",keep";        }                if (doReturnAdv) {            request += ",true";        } else {            request += ",other";        }                return request;    }        static Message createConnectedMessage(long lease) {        Message message = new Message();                message.addMessageElement(RELAY_NS, CONNECTED_RESPONSE_ELEMENT);                if (lease > 0) {            setString(message, LEASE_ELEMENT, Long.toString(lease));        }                return message;    }        static Message createDisconnectMessage() {        Message message = new Message();                message.addMessageElement(RELAY_NS, DISCONNECT_REQUEST_ELEMENT);                return message;    }        static Message createDisconnectedMessage() {        Message message = new Message();                message.addMessageElement(RELAY_NS, DISCONNECTED_RESPONSE_ELEMENT);                return message;    }        /**     *  Convinence function for setting a string element with the relay namespace     **/    static void setString(Message message, String tag, String value) {        // create a new String Element with the given value        StringMessageElement sme = new StringMessageElement(tag, value, null);                // add the new element to the message        message.addMessageElement(RELAY_NS, sme);    }        /**     *  Convinence function for getting a String from the element with the given     *  tag and relay namespace     **/    static String getString(Message message, String tag) {        // get the requested element        MessageElement element = message.getMessageElement(RelayTransport.RELAY_NS, tag);                // if the element is not present, return null        if (element == null) {            return null;        }                // return the string        return element.toString();    }}

⌨️ 快捷键说明

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