+#!/usr/bin/env python
+# vim: set ts=4 sts=4 sw=4 textwidth=112:
+
+class RarslaveMessage (object):
+ def __init__ (self, msg, printquiet):
+ self.msg = msg
+ self.printquiet = printquiet
+
+ def __repr__ (self):
+ return "%s" % self.msg
+
+ def isVerbose (self):
+ # A message is verbose only if we should
+ # print it when we are not printing quietly
+ return not self.printquiet
+
+class RarslaveLogger (object):
+ # This class will log multiple messages, one for each set that is operated on.
+ # It will then be able to print all of them out.
+
+ def __init__ (self):
+ self.__uniq_num = 0
+ self.__msg_dict = {}
+
+ def getUniqueID (self):
+ # Generate a unique id. This implementation is pretty simple,
+ # just generating an increasing set of integers.
+
+ # This function also sets up the dictionary which will hold the messages.
+ self.__uniq_num += 1
+ self.__msg_dict[self.__uniq_num] = []
+
+ return self.__uniq_num
+
+ def isValidID (self, id):
+ # Check if the id given is a valid one. This is done by checking if
+ # the id is in the dictionary.
+ return id in self.__msg_dict.keys()
+
+ def addMessage (self, id, 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.
+
+ # Check the id
+ assert self.isValidID (id)
+
+ # Get the list from the dictionary, then add the message to it
+ self.__msg_dict[id].append (RarslaveMessage (msg, printquiet))
+
+ def printAllMessages (self, verbose=False):
+ # Print all messages in groups by id
+ for k in self.__msg_dict.keys():
+ for msg in self.__msg_dict[k]:
+
+ # Skip verbose messages if we're not in verbose mode
+ if msg.isVerbose() and not verbose:
+ continue
+
+ print msg
+
+ print
+
+def main ():
+ pass
+
+if __name__ == '__main__':
+ main ()
+