def METHOD_NAME(self, count, slpack):
    """
    Processes each packet received from the SeedLinkConnection.
    This method should be overridden when sub-classing SLClient.
    :type count: int
    :param count:  Packet counter.
    :type slpack: :class:`~obspy.clients.seedlink.slpacket.SLPacket`
    :param slpack: packet to process.
    :rtype: bool
    :return: True if connection to SeedLink server should be closed and
        session terminated, False otherwise.
    """
    # check if not a complete packet
    if slpack is None or (slpack == SLPacket.SLNOPACKET) or \
            (slpack == SLPacket.SLERROR):
        return False
    # get basic packet info
    seqnum = slpack.get_sequence_number()
    type = slpack.get_type()
    # process INFO packets here
    if (type == SLPacket.TYPE_SLINF):
        return False
    if (type == SLPacket.TYPE_SLINFT):
        print("-" * 40)
        print("Complete INFO:\n" + self.slconn.get_info_string())
        if self.infolevel is not None:
            return True
        else:
            return False
    # can send an in-line INFO request here
    if (count % 100 == 0):
        infostr = "ID"
        self.slconn.request_info(infostr)
    # if here, must be a data blockette
    print("-" * 40)
    print(self.__class__.__name__ + ": packet seqnum:", end=' ')
    print(str(seqnum) + ": blockette type: " + str(type))
    # process packet data
    trace = slpack.get_trace()
    if trace is not None:
        print(self.__class__.__name__ +
              ": blockette contains a trace: ", end=' ')
        print(trace.id, trace.stats['starttime'], end=' ')
        print(" dt:" + str(1.0 / trace.stats['sampling_rate']), end=' ')
        print(" npts:" + str(trace.stats['npts']), end=' ')
        print(" sampletype:" + str(trace.stats['sampletype']), end=' ')
        print(" dataquality:" + str(trace.stats['dataquality']))
        # Custom: append packet data to RtTrace
        # g_o_check = True    # raises Error on gap or overlap
        g_o_check = False  # clears RTTrace memory on gap or overlap
        self.rt_trace.append(trace, gap_overlap_check=g_o_check,
                             verbose=True)
        length = self.rt_trace.stats.npts / \
            self.rt_trace.stats.sampling_rate
        print(self.__class__.__name__ + ":", end=' ')
        print("append to RTTrace: npts:",
              str(self.rt_trace.stats.npts), end=' ')
        print("length:" + str(length) + "s")
        # post processing to do something interesting
        peak = np.amax(np.abs(self.rt_trace.data))
        print(self.__class__.__name__ + ": abs peak = " + str(peak))
    else:
        print(self.__class__.__name__ + ": blockette contains no trace")
    return False