# # logactio - simple framework for doing configured action on certain # log file events # # Copyright 2012 David Sommerseth # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # For the avoidance of doubt the "preferred form" of this code is one which # is in an open unpatent encumbered format. Where cryptographic key signing # forms part of the process of creating an executable the information # including keys needed to generate an equivalently functional executable # are deemed to be part of the source code. # import threading, Queue import Message class ReporterQueue(object): def __init__(self, qname, descr, processor): self.__thread = None self.__qname = qname self.__description = descr self.__queue = Queue.Queue() self.__thread = threading.Thread(target=processor) def GetName(self): return self.__description def _Start(self): if not self.__thread.isAlive(): self.__thread.start() def _Shutdown(self): self.__queue.put(Message.Message(Message.MSG_SHUTDOWN, 0, None)) self.__queue.task_done() def _QueueMsg(self, prio, msg): self.__queue.put(Message.Message(Message.MSG_SEND, 0, msg)) def _QueueGet(self): return self.__queue.get()