1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-05 19:42:17 +02:00

NetworkLibrary search mechanism has been implemented

git-svn-id: https://only.mawhrin.net/repos/FBReaderJ/trunk@1303 6a642e6f-84f6-412e-ac94-c4a38d5a04b0
This commit is contained in:
Vasiliy Bout 2010-04-29 11:16:54 +00:00
parent 0b894e6bb1
commit a4bc969e0a
3 changed files with 50 additions and 0 deletions

View file

@ -25,6 +25,8 @@ import java.util.*;
import org.geometerplus.zlibrary.core.filesystem.*;
import org.geometerplus.zlibrary.core.util.ZLNetworkUtil;
import org.geometerplus.zlibrary.core.options.ZLStringOption;
import org.geometerplus.zlibrary.core.network.ZLNetworkRequest;
import org.geometerplus.zlibrary.core.network.ZLNetworkManager;
import org.geometerplus.fbreader.tree.FBTree;
import org.geometerplus.fbreader.network.tree.*;
@ -236,4 +238,45 @@ public class NetworkLibrary {
return myRootTree;
}
// returns Error Message
public String simpleSearch(String pattern, final NetworkOperationData.OnNewItemListener listener) {
LinkedList<ZLNetworkRequest> requestList = new LinkedList<ZLNetworkRequest>();
LinkedList<NetworkOperationData> dataList = new LinkedList<NetworkOperationData>();
NetworkOperationData.OnNewItemListener synchronizedListener = new NetworkOperationData.OnNewItemListener() {
public synchronized boolean onNewItem(NetworkLibraryItem item) {
return listener.onNewItem(item);
}
};
for (NetworkLink link: myLinks) {
if (link.OnOption.getValue()) {
NetworkOperationData data = new NetworkOperationData(link, synchronizedListener);
ZLNetworkRequest request = link.simpleSearchRequest(pattern, data);
if (request != null) {
dataList.add(data);
requestList.add(request);
}
}
}
while (requestList.size() != 0) {
final String errorMessage = ZLNetworkManager.Instance().perform(requestList);
if (errorMessage != null) {
return errorMessage;
}
requestList.clear();
for (NetworkOperationData data: dataList) {
ZLNetworkRequest request = data.resume();
if (request != null) {
requestList.add(request);
}
}
}
return null;
}
}

View file

@ -63,6 +63,7 @@ abstract public class NetworkLink {
Links = new TreeMap(links);
}
public abstract ZLNetworkRequest simpleSearchRequest(String pattern, NetworkOperationData data);
public abstract ZLNetworkRequest resume(NetworkOperationData data);
public abstract NetworkLibraryItem libraryItem();

View file

@ -93,6 +93,12 @@ class OPDSLink extends NetworkLink {
};
}
@Override
public ZLNetworkRequest simpleSearchRequest(String pattern, NetworkOperationData data) {
// TODO: implement
return null;
}
@Override
public ZLNetworkRequest resume(NetworkOperationData data) {
String url = data.ResumeURI;