code: def _ParseHeader(self, parser_mediator, file_object):
      
      header_map = self._GetDataTypeMap('cups_ipp_header')
  
      try:
        header, _ = self._ReadStructureFromFileObject(file_object, 0, header_map)
      except (ValueError, errors.ParseError) as exception:
        raise errors.UnableToParseFile(
            '[{0:s}] Unable to parse header with error: {1!s}'.format(
                self.NAME, exception))
  
      format_version = '{0:d}.{1:d}'.format(
          header.major_version, header.minor_version)
      if format_version not in self._SUPPORTED_FORMAT_VERSIONS:
        raise errors.UnableToParseFile(
            '[{0:s}] Unsupported format version {1:s}.'.format(
                self.NAME, format_version))
  
      if header.operation_identifier != 5:
        # TODO: generate ExtractionWarning instead of printing debug output.
        display_name = parser_mediator.GetDisplayName()
        logger.debug((
            '[{0:s}] Non-standard operation identifier: 0x{1:08x} in file header '
            'of: {2:s}.').format(
                self.NAME, header.operation_identifier, display_name))
docs: Parses a CUPS IPP header from a file-like object.
  
      Args:
        parser_mediator (ParserMediator): mediates interactions between parsers
            and other components, such as storage and dfvfs.
        file_object (dfvfs.FileIO): file-like object.
  
      Raises:
        UnableToParseFile: when the header cannot be parsed.