/* Copyright (c) 2008 Bluendo S.r.L. * See about.html for details about license. * * $Id: NetworkConsumer.java 1028 2008-12-09 15:44:50Z luca $ */ package it.yup.util; import java.io.IOException; import java.io.OutputStream; import java.util.Vector; import javax.microedition.io.Connector; import javax.microedition.io.SocketConnection; public class NetworkConsumer extends Thread implements LogConsumer { private Vector messages = new Vector(); private boolean active = true; public NetworkConsumer() { start(); } public void run() { try { SocketConnection conn = (SocketConnection) Connector.open("socket://localhost:1234"); OutputStream os = conn.openOutputStream(); while(active) { synchronized (messages) { try { messages.wait(); if(messages.size()>0) { String message = (String) messages.firstElement(); messages.removeElementAt(0); os.write(Utils.getBytesUtf8(message)); os.write('\n'); os.flush(); } } catch (InterruptedException e) { // ignore } } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { active = false; } } public void gotMessage(String message, int level) { synchronized (messages) { if(active) { messages.addElement(message); messages.notify(); } } } public void setExiting() { synchronized (messages) { this.active = false; messages.notify(); } } }