Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package net.bounceme.dur.server.streams;
- import java.io.IOException;
- import net.bounceme.dur.jdbc.Title;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- import java.net.Socket;
- import java.util.logging.Logger;
- public class WorkerRunnable implements Runnable {
- private static final Logger log = Logger.getLogger(WorkerRunnable.class.getName());
- protected Socket socket = null;
- private Producer producer = null;
- private Consumer consumer = null;
- public WorkerRunnable(Socket clientSocket, RecordsQueueWrapper recordsQueue) {
- this.socket = clientSocket;
- }
- @Override
- public void run() {
- Title title = null;
- boolean titleIsConsumed = false;
- try (ObjectOutputStream objectOutputStream = new ObjectOutputStream(socket.getOutputStream());
- ObjectInputStream objectInputStream = new ObjectInputStream(socket.getInputStream())) {
- producer = new Producer(); //gets from a queue
- consumer = new Consumer(objectInputStream);
- while (true) {
- title = producer.produce();
- objectOutputStream.writeObject(title);
- do {
- consumer.consume(title);
- titleIsConsumed = true;
- } while (!titleIsConsumed);
- titleIsConsumed = false; //produce the next Title
- }
- } catch (IOException ioe) {
- log.severe(ioe.toString());
- throw new RuntimeException();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment