Class MessageReader

java.lang.Object
java.lang.Thread
xyz.cofe.sql.stream.MessageReader
All Implemented Interfaces:
java.lang.Runnable

public class MessageReader
extends java.lang.Thread
Чтение сообщений из Statement warnings
Author:
Kamnev Georgiy
  • Nested Class Summary

    Nested classes/interfaces inherited from class java.lang.Thread

    java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
  • Field Summary

    Fields 
    Modifier and Type Field Description
    protected java.util.function.Consumer<java.sql.SQLWarning> consumer  
    protected java.util.Set<java.sql.SQLWarning> readed  
    protected long sleep  
    protected java.util.logging.Level sqlWarnLevel  
    protected long startLag  
    protected java.sql.Statement statement  
    protected java.lang.Object sync  
    protected long waitForOpen  
    protected long waitForOpenTimeout  

    Fields inherited from class java.lang.Thread

    MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
  • Constructor Summary

    Constructors 
    Constructor Description
    MessageReader​(java.sql.Statement st, java.util.function.Consumer<java.sql.SQLWarning> consumer)
    Конструктор
    MessageReader​(java.sql.Statement st, java.util.function.Consumer<java.sql.SQLWarning> consumer, int sleep)
    Конструктор
  • Method Summary

    Modifier and Type Method Description
    java.util.function.Consumer<java.sql.SQLWarning> getConsumer()  
    long getSleep()
    Указывает задержку для ожидания поступления нового сообщения
    java.util.logging.Level getSqlWarnLevel()
    Указывает уровень логирования сообщений
    java.sql.Statement getStatement()  
    java.lang.Object getSync()  
    void releaseStatement()
    Удаление ссылки на statement
    void run()  
    void setConsumer​(java.util.function.Consumer<java.sql.SQLWarning> ncons)  
    void setSleep​(long sleep)
    Указывает задержку для ожидания поступления нового сообщения
    void setSqlWarnLevel​(java.util.logging.Level sqlWarnLevel)
    Указывает уровень логирования сообщений
    void setStatement​(java.sql.Statement st)  
    void terminate​(long timeout, long sleep)
    Остановка выполнения.

    Methods inherited from class java.lang.Thread

    activeCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • sync

      protected final java.lang.Object sync
    • statement

      protected java.sql.Statement statement
    • consumer

      protected java.util.function.Consumer<java.sql.SQLWarning> consumer
    • readed

      protected final java.util.Set<java.sql.SQLWarning> readed
    • sqlWarnLevel

      protected java.util.logging.Level sqlWarnLevel
    • sleep

      protected long sleep
    • startLag

      protected long startLag
    • waitForOpenTimeout

      protected long waitForOpenTimeout
    • waitForOpen

      protected long waitForOpen
  • Constructor Details

    • MessageReader

      public MessageReader​(java.sql.Statement st, java.util.function.Consumer<java.sql.SQLWarning> consumer, int sleep)
      Конструктор
      Parameters:
      st - SQL Statement из которого будут прочитываться сообщения
      consumer - Приемник сообщений
      sleep - задержка между приемами сообщений
    • MessageReader

      public MessageReader​(java.sql.Statement st, java.util.function.Consumer<java.sql.SQLWarning> consumer)
      Конструктор
      Parameters:
      st - SQL Statement из которого будут прочитываться сообщения
      consumer - Приемник сообщений
  • Method Details

    • getSync

      public java.lang.Object getSync()
    • getStatement

      public java.sql.Statement getStatement()
    • setStatement

      public void setStatement​(java.sql.Statement st)
    • releaseStatement

      public void releaseStatement()
      Удаление ссылки на statement
    • getConsumer

      public java.util.function.Consumer<java.sql.SQLWarning> getConsumer()
    • setConsumer

      public void setConsumer​(java.util.function.Consumer<java.sql.SQLWarning> ncons)
    • getSqlWarnLevel

      public java.util.logging.Level getSqlWarnLevel()
      Указывает уровень логирования сообщений
      Returns:
      уровень логирования - по умолчанию FINE
    • setSqlWarnLevel

      public void setSqlWarnLevel​(java.util.logging.Level sqlWarnLevel)
      Указывает уровень логирования сообщений
      Parameters:
      sqlWarnLevel - уровень логирования - по умолчанию FINE
    • getSleep

      public long getSleep()
      Указывает задержку для ожидания поступления нового сообщения
      Returns:
      задержка в мс
    • setSleep

      public void setSleep​(long sleep)
      Указывает задержку для ожидания поступления нового сообщения
      Parameters:
      sleep - задержка в мс
    • run

      public void run()
      Specified by:
      run in interface java.lang.Runnable
      Overrides:
      run in class java.lang.Thread
    • terminate

      public void terminate​(long timeout, long sleep)
      Остановка выполнения.

      Нельзя вызывать только в самом же треде.

      Parameters:
      timeout - макс. время (мс) за которое должна произойти остановка
      sleep - время (мс) паузы, при значении < 0 - передает управление другому потоку Thread.yield()