/packages/apps/get-a-robot-vpn-frontend/src/org/codeandroid/vpnc_frontend/LoggingThread.java

http://get-a-robot-vpnc.googlecode.com/ · Java · 56 lines · 49 code · 7 blank · 0 comment · 5 complexity · 4a2d6268bad14afd4fc11f52c41cc5c8 MD5 · raw file

  1. package org.codeandroid.vpnc_frontend;
  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.InputStreamReader;
  6. import java.io.PrintWriter;
  7. public class LoggingThread extends Thread
  8. {
  9. private BufferedReader bufferedReader;
  10. private PrintWriter logWriter;
  11. private String prefix;
  12. private boolean quit = false;
  13. private int priority;
  14. public LoggingThread(InputStream inputStream, PrintWriter logWriter, String prefix, int priority)
  15. {
  16. this.prefix = prefix;
  17. this.logWriter = logWriter;
  18. bufferedReader = new BufferedReader( new InputStreamReader( inputStream ) );
  19. this.priority = priority;
  20. }
  21. @Override
  22. public void run()
  23. {
  24. try
  25. {
  26. for( String line = bufferedReader.readLine(); line != null && !quit; line = bufferedReader.readLine() )
  27. {
  28. Util.printLog( priority, prefix + line );
  29. if( logWriter != null )
  30. {
  31. logWriter.println( prefix + line );
  32. }
  33. }
  34. }
  35. catch( IOException e )
  36. {
  37. Util.error( prefix + e.getMessage(), e );
  38. }
  39. finally
  40. {
  41. logWriter.flush();
  42. logWriter.close();
  43. }
  44. }
  45. public void quit()
  46. {
  47. quit = true;
  48. }
  49. }