def __init__(self, policy_directory, policy_store, live_monitoring=True):
super(PolicyDirectoryMonitor, self).__init__()<EOL>self.halt_trigger = multiprocessing.Event()<EOL>self.policy_directory = policy_directory<EOL>self.live_monitoring = live_monitoring<EOL>self.file_timestamps = None<EOL>self.policy_cache = None<EOL>self.policy_files = None<EOL>self.policy_map = None<EOL>self.policy_store = policy_store<EOL>self.reserved_policies = ['<STR_LIT:default>', '<STR_LIT>']<EOL>def interrupt_handler(trigger, frame):<EOL><INDENT>self.stop()<EOL><DEDENT>signal.signal(signal.SIGINT, interrupt_handler)<EOL>signal.signal(signal.SIGTERM, interrupt_handler)<EOL>self.logger = logging.getLogger("<STR_LIT>")<EOL>self.initialize_tracking_structures()<EOL>
Set up the file monitor with the policy directory to track.

Args:
    policy_directory (string): The system path of the policy directory
        that should be monitored. Required.
    policy_store (DictProxy): A dictionary proxy created by the server
        multiprocessing resource manager. Used to store and share the
        policy information across server processes and threads.
        Required.
    live_monitoring (boolean): A boolean indicating whether or not
        live monitoring should continue indefinitely. Optional,
        defaults to True.