def update_markers(self, unseen_ids=None, unread_ids=None, operation='add'):
        '''
        Starts or stops tracking aggregated activities as unseen and/or unread.
        '''
        if self.markers_storage_class is not None:
            if operation not in ('add', 'remove'):
                raise TypeError('%s is not supported' % operation)

            kwargs = dict()
            if unseen_ids is not None and self.track_unseen:
                kwargs['unseen'] = unseen_ids
            if unread_ids is not None and self.track_unread:
                kwargs['unread'] = unread_ids

            func = getattr(self.feed_markers, operation)
            func(**kwargs)

            # TODO use a real-time transport layer to notify for these updates
dataset/ETHPy150Open tschellenbach/Stream-Framework/stream_framework/feeds/notification_feed/base.py/BaseNotificationFeed.update_markers/original