Handles the processing for asynchronous appender events in multiple threads.  
 More...
#include <Logger.qm.dox.h>
 | 
|   | constructor (ThreadPool tp, int max_threads=-1) | 
|   | Creates the object.  More...
  | 
|   | 
| 
ThreadPool  | getThreadPool () | 
|   | Returns the assigned ThreadPool. 
  | 
|   | 
|   | process (timeout ms=0) | 
|   | Processes queue events.  More...
  | 
|   | 
| 
int  | size () | 
|   | Gets number of pending events. 
  | 
|   | 
|   | process (timeout ms=0) | 
|   | Processes queued events.  More...
  | 
|   | 
| bool  | push (LoggerAppender appender, int type, auto params) | 
|   | Adds appender event.  More...
  | 
|   | 
| 
int  | size () | 
|   | Returns the current number of events waiting in queue. 
  | 
|   | 
 | 
| 
Queue  | finishedEvents () | 
|   | queue of processed events in worker threads 
  | 
|   | 
| 
Sequence  | lastId (0) | 
|   | internal unique counter 
  | 
|   | 
| 
Mutex  | lock () | 
|   | to protect process() 
  | 
|   | 
| 
Counter  | runningCounter (0) | 
|   | number of running worker threads 
  | 
|   | 
|   | worker (string id, LoggerAppender appender, list< auto > events) | 
|   | Implements worker thread code.  More...
  | 
|   | 
 | 
| 
int  | maxThreads | 
|   | max.number of worker threads 
  | 
|   | 
| 
hash< auto >  | pendingEvents | 
|   | events removed from queue but not passed to worker thread 
  | 
|   | 
| 
hash< auto >  | processingEvents | 
|   | events paseed to worker thread 
  | 
|   | 
| 
ThreadPool  | threadPool | 
|   | worker thread pool 
  | 
|   | 
 | 
| *hash< auto >  | getEvent (timeout ms) | 
|   | Returns the next event from queue or NOTHING if there is no event available within the timeout period.  More...
  | 
|   | 
Handles the processing for asynchronous appender events in multiple threads. 
Async events are removed from the event queue in a single thread which balances processing in multiple worker threads via a ThreadPool. This class groups events by appender so that events related to a particular appender are always processed serially in the same thread. It is compatible with Qore's Qore::OutputStream implementation where all data submitted to the output stream must be submitted from the same thread. 
 
◆ constructor()
      
        
          | Logger::LoggerAppenderQueueThreadPool::constructor  | 
          ( | 
          ThreadPool  | 
          tp,  | 
        
        
           | 
           | 
          int  | 
          max_threads = -1  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Creates the object. 
- Parameters
 - 
  
    | tp | worker ThreadPool where loggging events are submitted  | 
    | max_threads | max.number of worker threads, default value is -1, i.e. unlimited  | 
  
   
 
 
◆ process()
      
        
          | Logger::LoggerAppenderQueueThreadPool::process  | 
          ( | 
          timeout  | 
          ms = 0 | ) | 
           | 
        
      
 
Processes queue events. 
Group logging events by appender and submit them to a worker thread to be processed in a thread pool so the particular thread will handle corresponding appender instance.
- Parameters
 - 
  
    | ms | a timeout value to wait for data to become available on the queue; integers are interpreted as milliseconds; relative date/time values are interpreted literally with a maximum resolution of milliseconds. A value that converts to integer 0 causes the call to time out immediately if the call would otherwise block. If a positive timeout argument is passed, and no data is available in the timeout period then waits up to timeout value, If a negative timeout value is passed as the argument, then the call blocks until data is available on the queue. Default value is 0.  | 
  
   
 
 
◆ worker()
  
  
      
        
          | Logger::LoggerAppenderQueueThreadPool::worker  | 
          ( | 
          string  | 
          id,  | 
         
        
           | 
           | 
          LoggerAppender  | 
          appender,  | 
         
        
           | 
           | 
          list< auto >  | 
          events  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
private:internal   | 
  
 
Implements worker thread code. 
- Parameters
 -