...
| Code Block | ||
|---|---|---|
| ||
public boolean sendReply(Socket socket, String pageName) { // No synchronization
Page targetPage = getPage(pageName);
if(targetPage == null)
return FAILURE;
return sendPage(socket, targetPage);
}
private synchronized Page getPage(String pageName) { // Requires synchronization
Page targetPage = null;
for(Page p : pageBuff) {
if(p.getName().equals(pageName)) {
targetPage = p;
}
}
return targetPage;
}
public boolean sendPage(Socket socket, Page page){
try{
// Get the output stream to write the Page to
ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
// Send the Page to the client
out.writeObject(page);
} catch(IOException io){
// If recovery is not possible return FAILURE
return FAILURE;
} finally {
out.flush();
out.close();
}
return SUCCESS;
}
|
...