[RARSLAVE] Eliminate duplicates when finding deleteable files
[rarslave2.git] / RarslaveLogger.py
index 06b59a6..d60b105 100644 (file)
@@ -1,18 +1,31 @@
 #!/usr/bin/env python
 # vim: set ts=4 sts=4 sw=4 textwidth=92:
 
+class MessageType (object):
+       Fatal = -1
+       Normal = 0
+       Verbose = 1
+       Debug = 2
+
 class RarslaveMessage (object):
-       def __init__ (self, msg, printquiet):
+       def __init__ (self, msg, type=MessageType.Normal):
                self.msg = msg
-               self.printquiet = printquiet
+               self.type = type
 
        def __repr__ (self):
                return "%s" % self.msg
 
+       def isFatal (self):
+               return self.type == MessageType.Fatal
+
+       def isNormal (self):
+               return self.type == MessageType.Normal
+
        def isVerbose (self):
-               # A message is verbose only if we should
-               # print it when we are not printing quietly
-               return not self.printquiet
+               return self.type == MessageType.Verbose
+
+       def isDebug (self):
+               return self.type == MessageType.Debug
 
 class RarslaveLogger (object):
        # This class will log multiple messages, one for each set that is operated on.
@@ -21,20 +34,48 @@ class RarslaveLogger (object):
        def __init__ (self):
                self.__messages = []
 
-       def addMessage (self, msg, printquiet=True):
-               # Add a message to the dictionary, to be printed later.
-               # The printquiet variable controls whether the message will be printed
-               # normally, or only in verbose mode. The default is to print always.
+       def addMessage (self, msg, type=MessageType.Normal):
+               self.__messages.append (RarslaveMessage (msg, type))
+
+       def hasFatalMessages (self):
+               for m in self.__messages:
+                       if m.isFatal ():
+                               return True
+
+               return False
+
+       def hasNormalMessages (self):
+               for m in self.__messages:
+                       if m.isNormal ():
+                               return True
+
+               return False
+
+       def hasVerboseMessages (self):
+               for m in self.__messages:
+                       if m.isVerbose ():
+                               return True
+
+               return False
+
+       def hasDebugMessages (self):
+               for m in self.__messages:
+                       if m.isDebug ():
+                               return True
 
-               self.__messages.append (RarslaveMessage (msg, printquiet))
+               return False
 
-       def printAllMessages (self, verbose=False):
-               for msg in self.__messages:
-                       # Skip verbose messages if we're not in verbose mode
-                       if msg.isVerbose() and not verbose:
-                               continue
+       def printAllMessages (self, level=MessageType.Normal):
+               # Print all messages with level upto and including $level.
+               for m in self.__messages:
+                       if m.type <= level:
+                               print m
 
-                       print msg
+       def printLoglevel (self, level=MessageType.Normal):
+               # Print all message with exactly the loglevel given
+               for m in self.__messages:
+                       if m.type == level:
+                               print m
 
 def main ():
        pass