def ParseFileTransfer(self, parser_mediator, row, cache=None, database=None, query=None, **unused_kwargs):
    'Parse the transfer files.\n\n     There is no direct relationship between who sends the file and\n     who accepts the file.\n\n    Args:\n      parser_mediator: A parser mediator object (instance of ParserMediator).\n      row: the row with all information related with the file transfers.\n      query: Optional query string. The default is None.\n      cache: a cache object (instance of SQLiteCache).\n      database: A database object (instance of SQLiteDatabase).\n    '
    source_dict = cache.GetResults(u'source')
    if (not source_dict):
        cursor = database.cursor
        results = cursor.execute(self.QUERY_SOURCE_FROM_TRANSFER)
        cache.CacheQueryResults(results, 'source', 'pk_id', ('skypeid', 'skypename'))
        source_dict = cache.GetResults(u'source')
    dest_dict = cache.GetResults(u'destination')
    if (not dest_dict):
        cursor = database.cursor
        results = cursor.execute(self.QUERY_DEST_FROM_TRANSFER)
        cache.CacheQueryResults(results, 'destination', 'parent_id', ('skypeid', 'skypename'))
        dest_dict = cache.GetResults(u'destination')
    source = u'Unknown'
    destination = u'Unknown'
    if row['parent_id']:
        destination = u'{0:s} <{1:s}>'.format(row['partner_handle'], row['partner_dispname'])
        (skype_id, skype_name) = source_dict.get(row['parent_id'], [None, None])
        if skype_name:
            source = u'{0:s} <{1:s}>'.format(skype_id, skype_name)
    else:
        source = u'{0:s} <{1:s}>'.format(row['partner_handle'], row['partner_dispname'])
        if row['pk_id']:
            (skype_id, skype_name) = dest_dict.get(row['pk_id'], [None, None])
            if skype_name:
                destination = u'{0:s} <{1:s}>'.format(skype_id, skype_name)
    if (row['status'] == 8):
        if row['starttime']:
            event_object = SkypeTransferFileEvent(row, row['starttime'], u'GETSOLICITUDE', source, destination)
            parser_mediator.ProduceEvent(event_object, query=query)
        if row['accepttime']:
            event_object = SkypeTransferFileEvent(row, row['accepttime'], u'ACCEPTED', source, destination)
            parser_mediator.ProduceEvent(event_object, query=query)
        if row['finishtime']:
            event_object = SkypeTransferFileEvent(row, row['finishtime'], u'FINISHED', source, destination)
            parser_mediator.ProduceEvent(event_object, query=query)
    elif ((row['status'] == 2) and row['starttime']):
        event_object = SkypeTransferFileEvent(row, row['starttime'], u'SENDSOLICITUDE', source, destination)
        parser_mediator.ProduceEvent(event_object, query=query)
Parse the transfer files.

 There is no direct relationship between who sends the file and
 who accepts the file.

Args:
  parser_mediator: A parser mediator object (instance of ParserMediator).
  row: the row with all information related with the file transfers.
  query: Optional query string. The default is None.
  cache: a cache object (instance of SQLiteCache).
  database: A database object (instance of SQLiteDatabase).
def ParseFileTransfer(self, parser_mediator, row, cache=None, database=None, query=None, **unused_kwargs):
    'Parse the transfer files.\n\n     There is no direct relationship between who sends the file and\n     who accepts the file.\n\n    Args:\n      parser_mediator: A parser mediator object (instance of ParserMediator).\n      row: the row with all information related with the file transfers.\n      query: Optional query string. The default is None.\n      cache: a cache object (instance of SQLiteCache).\n      database: A database object (instance of SQLiteDatabase).\n    '
    source_dict = cache.GetResults(u'source')
    if (not source_dict):
        cursor = database.cursor
        results = cursor.execute(self.QUERY_SOURCE_FROM_TRANSFER)
        cache.CacheQueryResults(results, 'source', 'pk_id', ('skypeid', 'skypename'))
        source_dict = cache.GetResults(u'source')
    dest_dict = cache.GetResults(u'destination')
    if (not dest_dict):
        cursor = database.cursor
        results = cursor.execute(self.QUERY_DEST_FROM_TRANSFER)
        cache.CacheQueryResults(results, 'destination', 'parent_id', ('skypeid', 'skypename'))
        dest_dict = cache.GetResults(u'destination')
    source = u'Unknown'
    destination = u'Unknown'
    if row['parent_id']:
        destination = u'{0:s} <{1:s}>'.format(row['partner_handle'], row['partner_dispname'])
        (skype_id, skype_name) = source_dict.get(row['parent_id'], [None, None])
        if skype_name:
            source = u'{0:s} <{1:s}>'.format(skype_id, skype_name)
    else:
        source = u'{0:s} <{1:s}>'.format(row['partner_handle'], row['partner_dispname'])
        if row['pk_id']:
            (skype_id, skype_name) = dest_dict.get(row['pk_id'], [None, None])
            if skype_name:
                destination = u'{0:s} <{1:s}>'.format(skype_id, skype_name)
    if (row['status'] == 8):
        if row['starttime']:
            event_object = SkypeTransferFileEvent(row, row['starttime'], u'GETSOLICITUDE', source, destination)
            parser_mediator.ProduceEvent(event_object, query=query)
        if row['accepttime']:
            event_object = SkypeTransferFileEvent(row, row['accepttime'], u'ACCEPTED', source, destination)
            parser_mediator.ProduceEvent(event_object, query=query)
        if row['finishtime']:
            event_object = SkypeTransferFileEvent(row, row['finishtime'], u'FINISHED', source, destination)
            parser_mediator.ProduceEvent(event_object, query=query)
    elif ((row['status'] == 2) and row['starttime']):
        event_object = SkypeTransferFileEvent(row, row['starttime'], u'SENDSOLICITUDE', source, destination)
        parser_mediator.ProduceEvent(event_object, query=query)