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

📄 peerinfoserviceinterface.java

📁 jxme的一些相关程序,主要是手机上程序开发以及手机和计算机通信的一些程序资料,程序编译需要Ant支持
💻 JAVA
字号:
/*
 *  Copyright (c) 2001 Sun Microsystems, Inc.  All rights
 *  reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions
 *  are met:
 *
 *  1. Redistributions of source code must retain the above copyright
 *  notice, this list of conditions and the following disclaimer.
 *
 *  2. Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in
 *  the documentation and/or other materials provided with the
 *  distribution.
 *
 *  3. The end-user documentation included with the redistribution,
 *  if any, must include the following acknowledgment:
 *  "This product includes software developed by the
 *  Sun Microsystems, Inc. for Project JXTA."
 *  Alternately, this acknowledgment may appear in the software itself,
 *  if and wherever such third-party acknowledgments normally appear.
 *
 *  4. The names "Sun", "Sun Microsystems, Inc.", "JXTA" and "Project JXTA" must
 *  not be used to endorse or promote products derived from this
 *  software without prior written permission. For written
 *  permission, please contact Project JXTA at http://www.jxta.org.
 *
 *  5. Products derived from this software may not be called "JXTA",
 *  nor may "JXTA" appear in their name, without prior written
 *  permission of Sun.
 *
 *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 *  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 *  DISCLAIMED.  IN NO EVENT SHALL SUN MICROSYSTEMS OR
 *  ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 *  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 *  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 *  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 *  SUCH DAMAGE.
 *  ====================================================================
 *
 *  This software consists of voluntary contributions made by many
 *  individuals on behalf of Project JXTA.  For more
 *  information on Project JXTA, please see
 *  <http://www.jxta.org/>.
 *
 *  This license is based on the BSD license adopted by the Apache Foundation.
 *
 *  $Id: PeerInfoServiceInterface.java,v 1.7 2001/12/17 02:19:43 bondolo Exp $
 */
package net.jxta.impl.peer;

import java.io.IOException;
import java.util.Enumeration;
import net.jxta.document.Advertisement;
import net.jxta.service.Service;
import net.jxta.id.ID;
import net.jxta.peer.PeerInfoService;
import net.jxta.peer.PeerInfoListener;
import net.jxta.peer.PeerInfoEvent;
import net.jxta.peergroup.PeerGroup;
import net.jxta.exception.PeerGroupException;
import net.jxta.protocol.PeerInfoResponseMessage;
import net.jxta.impl.peer.PeerInfoServiceImpl;

/**
 *  PeerInfoServiceInterface provides a pure interface object that permits
 *  interaction with the actual PeerInfoService implementation without giving
 *  access to the real object.
 */
public class PeerInfoServiceInterface implements PeerInfoService {
    
    private PeerInfoService impl;
    
    
    /**
     *  returns an interface object that permits to use this service without
     *  having access to the real object. Since THIS is already such an
     *  object, it returns itself. FIXME: it is kind of absurd to have this
     *  method part of the interface but we do not want to define two levels
     *  of Service interface just for that.
     *
     *@return    PeerInfoServiceImpl An interface object that implements
     *      this service and nothing more.
     */
    public Service getInterface() {
        return this;
    }
    
    
    /**
     *  Returns the advertisment for that service.
     *
     *@return     Advertisement the advertisement.
     *@version    $Revision: 1.7 $
     *@since      JXTA 1.0
     */
    public Advertisement getImplAdvertisement() {
        return impl.getImplAdvertisement();
    }
    
    
    /**
     *  Only authorized constructor
     *
     *@param  theRealThing
     */
    public PeerInfoServiceInterface(PeerInfoService theRealThing) {
        impl = theRealThing;
    }
    
    
    /**
     *  Initialize the application FIXME: This is meaningless for the
     *  interface object; it is there only to satisfy the requirements of
     *  the interface that we implement. Ultimately, the API should define
     *  two levels of interfaces: one for the real service implementation
     *  and one for the interface object. Right now it feels a bit heavy to
     *  so that since the only different between the two would be init() and
     *  may-be getName().
     *
     *@param  pg
     *@param  assignedID
     *@param  impl
     *@since              JXTA 1.0
     */
    public void init(PeerGroup pg, ID assignedID, Advertisement impl) { }
    
    
    /**
     *  This is here for temporary class hierarchy reasons. it is ALWAYS
     *  ignored. By definition, the interface object protects the real
     *  object's start/stop methods from being called
     *
     *@param  arg  A table of strings arguments.
     *@return      int status indication.
     */
    public int startApp(String[] arg) {
        return 0;
    }
    
    
    /**
     *  This is here for temporary class hierarchy reasons. it is ALWAYS
     *  ignored. By definition, the interface object protects the real
     *  object's start/stop methods from being called This request is
     *  currently ignored.
     */
    public void stopApp() { }
    
    
    /**
     *  Retrieve Peer Information Advertisement for local peer
     *
     *@return    PeerInfoResponseMessage
     */
    public PeerInfoResponseMessage getPeerInfoService() {
        return impl.getPeerInfoService();
    }
    
    
    /**
     *  Get PeerInfoService from a remote peer.
     *
     *@param  peer  Address of a peer, or portal to connect to, if address
     *      is null
     *@return       The remotePeerInfo value
     */
    public int getRemotePeerInfo(ID peer) {
        return impl.getRemotePeerInfo(peer);
    }
    
    
    /**
     *  Gets the remotePeerInfo attribute of the PeerInfoServiceInterface
     *  object
     *
     *@param  peer
     *@param  listener
     */
    public void getRemotePeerInfo(ID peer, PeerInfoListener listener) {
        impl.getRemotePeerInfo(peer, listener);
    }
    
    
    /**
     *  Get PeerInfoService from local cache.
     *
     *@param  peer             Address of a peer, or portal to connect to,
     *      if address is null
     *@return                  The localPeerInfo value
     *@exception  IOException
     */
    public Enumeration getLocalPeerInfo(ID peer)  throws IOException {
        return impl.getLocalPeerInfo(peer);
    }
    
    
    /**
     *  Flush cached advertisements.
     *
     *@param  id               peerId of peer whose locally cached adv is to
     *      be deleted. If null, cached advs of all peers are deleted.
     *@exception  IOException
     */
    public void flushAdvertisements(ID id) throws IOException {
        impl.flushAdvertisements(id);
    }
    
    
    /**
     *  Add a peerinfo listener
     *
     *@param  listener          The feature to be added to the
     *      PeerInfoListener attribute
     */
    
    public synchronized void addPeerInfoListener(PeerInfoListener listener) {
        impl.addPeerInfoListener(listener);
    }
    
    
    /**
     *  remove a peer info listener
     *
     *@param  listener
     *@return                   true if the argument was a component of this
     *      vector; false otherwise
     */
    
    public synchronized boolean removePeerInfoListener(PeerInfoListener listener) {
        return (impl.removePeerInfoListener(listener));
    }
    
}

⌨️ 快捷键说明

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