Generates a flow object from a database row.

def _FlowObjectFromRow(self, row):
    """Generates a flow object from a database row."""

    flow, fs, cci, pt, nr, pd, po, ps, uct, sct, nbs, nrs, ts, lut = row

    flow_obj = rdf_flow_objects.Flow.FromSerializedString(flow)
    if fs not in [None, rdf_flow_objects.Flow.FlowState.UNSET]:
      flow_obj.flow_state = fs
    if cci is not None:
      cc_cls = rdf_client.ClientCrash
      flow_obj.client_crash_info = cc_cls.FromSerializedString(cci)
    if pt is not None:
      pt_cls = rdf_flow_objects.PendingFlowTermination
      flow_obj.pending_termination = pt_cls.FromSerializedString(pt)
    if nr:
      flow_obj.next_request_to_process = nr
    if pd is not None:
      flow_obj.processing_deadline = mysql_utils.TimestampToRDFDatetime(pd)
    if po is not None:
      flow_obj.processing_on = po
    if ps is not None:
      flow_obj.processing_since = mysql_utils.TimestampToRDFDatetime(ps)
    flow_obj.cpu_time_used.user_cpu_time = db_utils.MicrosToSeconds(uct)
    flow_obj.cpu_time_used.system_cpu_time = db_utils.MicrosToSeconds(sct)
    flow_obj.network_bytes_sent = nbs
    if nrs:
      flow_obj.num_replies_sent = nrs
    flow_obj.timestamp = mysql_utils.TimestampToRDFDatetime(ts)
    flow_obj.last_update_time = mysql_utils.TimestampToRDFDatetime(lut)

    return flow_obj