📄 appapi.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 + -