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

📄 appapi.java

📁 We intend to develop a wifi enabled p2p file sharing system on a linux platform using jxta and java.
💻 JAVA
字号:
package edu.uiuc.cs.cs327.linuxwifi.app;

import edu.uiuc.cs.cs327.linuxwifi.util.*;
import edu.uiuc.cs.cs327.linuxwifi.services.*;
import java.util.*;

public class AppAPI
{
    private Vector _fileInfoListeners;
    private Vector _musicProfileListeners;
    private Stack _musicProfileRequests;
    private Stack _fileInfoResponses;
    
    private Search search;

    public AppAPI()
    {
        _fileInfoListeners = new Vector();
        _musicProfileListeners = new Vector();
        _musicProfileRequests = new Stack();
		_fileInfoResponses = new Stack();
    }

    public synchronized void addFileInfoListener(FileInfoListener l)
    {
        _fileInfoListeners.add(l);
    }
    public synchronized void removeFileInfoListener(FileInfoListener l)
    {
        _fileInfoListeners.remove(l);
    }
    public synchronized void fireFileInfoReceivedEvent(FileInfo fi)
    {
        FileInfoEvent e = new FileInfoEvent(this, fi);
        Iterator listeners = _fileInfoListeners.iterator();
        while(listeners.hasNext()) {
            ((FileInfoListener)listeners.next()).fileInfoReceived(e);
        }
    }

    public synchronized void addMusicProfileListener(MusicProfileListener l)
    {
        _musicProfileListeners.add(l);
    }
    
    public synchronized void removeMusicProfileListener(MusicProfileListener l)
    {
        _musicProfileListeners.remove(l);
    }
    
    public synchronized void fireMusicRequestEvent(MusicProfile mp)
    {
        MusicProfileEvent e = new MusicProfileEvent(this, mp);
        Iterator listeners = _musicProfileListeners.iterator();
        while(listeners.hasNext()) {
            ((MusicProfileListener)listeners.next()).musicRequestReceived(e);
        }

    }
    
    public synchronized void requestSearch(MusicProfile mp, Vector availableNodesVector)
    {
        _musicProfileRequests.push(mp);
        // for local testing
//        fireMusicRequestEvent(mp);
        
        search = new Search(mp, PeerDiscovery.netPeerGroup, this, availableNodesVector); 
    }
    
    public synchronized void respondSearch(FileInfo fi)
    {
        _fileInfoResponses.push(fi);
        // for local testing
//        fireFileInfoReceivedEvent(fi);
        
        System.out.println("Found 50cent");
    }
    
    public synchronized FileInfo popFileInfo()
    {
        if(_fileInfoResponses.empty())
            return(null);
        else
            return((FileInfo)_fileInfoResponses.pop());        

    }
    

}

⌨️ 快捷键说明

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