def _ProcessDirectory(self, mediator, file_entry):
    """Processes a directory file entry.

    Args:
      mediator (ParserMediator): mediates the interactions between
          parsers and other components, such as storage and abort signals.
      file_entry (dfvfs.FileEntry): file entry of the directory.
    """
    self.processing_status = definitions.STATUS_INDICATOR_COLLECTING

    if self._processing_profiler:
      self._processing_profiler.StartTiming('collecting')

    for sub_file_entry in file_entry.sub_file_entries:
      if self._abort:
        break

      try:
        if not sub_file_entry.IsAllocated():
          continue

      except dfvfs_errors.BackEndError as exception:
        warning_message = (
            'unable to process directory entry: {0:s} with error: '
            '{1!s}').format(sub_file_entry.name, exception)
        mediator.ProduceExtractionWarning(
            warning_message, path_spec=file_entry.path_spec)
        continue

      # For TSK-based file entries only, ignore the virtual /$OrphanFiles
      # directory.
      if sub_file_entry.type_indicator == dfvfs_definitions.TYPE_INDICATOR_TSK:
        if file_entry.IsRoot() and sub_file_entry.name == '$OrphanFiles':
          continue

      event_source = event_sources.FileEntryEventSource(
          path_spec=sub_file_entry.path_spec)

      # TODO: move this into a dfVFS file entry property.
      stat_object = sub_file_entry.GetStat()
      if stat_object:
        event_source.file_entry_type = stat_object.type

      mediator.ProduceEventSource(event_source)

      self.last_activity_timestamp = time.time()

    if self._processing_profiler:
      self._processing_profiler.StopTiming('collecting')

    self.processing_status = definitions.STATUS_INDICATOR_RUNNING
def _ProcessDirectory ( self , mediator , file_entry ) : self . processing_status = definitions . STATUS_INDICATOR_COLLECTING if self . _processing_profiler : self . _processing_profiler . StartTiming ( 'collecting' ) for sub_file_entry in file_entry . sub_file_entries : if self . _abort : break try : if not sub_file_entry . IsAllocated ( ) : continue except dfvfs_errors . BackEndError as exception : warning_message = ( 'unable to process directory entry: {0:s} with error: ' '{1!s}' ) . format ( sub_file_entry . name , exception ) mediator . ProduceExtractionWarning ( warning_message , path_spec = file_entry . path_spec ) continue if sub_file_entry . type_indicator == dfvfs_definitions . TYPE_INDICATOR_TSK : if file_entry . IsRoot ( ) and sub_file_entry . name == '$OrphanFiles' : continue event_source = event_sources . FileEntryEventSource ( path_spec = sub_file_entry . path_spec ) stat_object = sub_file_entry . GetStat ( ) if stat_object : event_source . file_entry_type = stat_object . type mediator . ProduceEventSource ( event_source ) self . last_activity_timestamp = time . time ( ) if self . _processing_profiler : self . _processing_profiler . StopTiming ( 'collecting' ) self . processing_status = definitions . STATUS_INDICATOR_RUNNING
Processes a directory file entry.

    Args:
      mediator (ParserMediator): mediates the interactions between
          parsers and other components, such as storage and abort signals.
      file_entry (dfvfs.FileEntry): file entry of the directory.