package vn.edu.rmit.sadi;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;
public class DbThread implements Runnable {
private Log log = LogFactory.getLog(DbThread.class);
private MessageDao dao;
private Socket client;
public void setDao(MessageDao dao) {
this.dao = dao;
}
public void setClient(Socket client) {
this.client = client;
}
@Override
public void run() {
try {
DataOutputStream dos = new DataOutputStream(client.getOutputStream());
DataInputStream dis = new DataInputStream(client.getInputStream());
while(true) {
// get message from client
String message = dis.readUTF();
log.info("Received : "+message);
// write to db
dao.saveMessage(message);
StringBuffer sb = new StringBuffer();
// show all messages
for(String m : dao.allMessages()) {
sb.append(m);
sb.append("\n");
}
dos.writeUTF(sb.toString());
dos.flush();
}
} catch(Exception e) {
e.printStackTrace();
log.error(e);
}
}
}