Adds the specified item to the tail of the Ringbuffer. If there is no space in the Ringbuffer, the action is
        determined by overflow policy as :const:`OVERFLOW_POLICY_OVERWRITE` or :const:`OVERFLOW_POLICY_FAIL`.

        :param item: (object), the specified item to be added.
        :param overflow_policy: (int), the OverflowPolicy to be used when there is no space (optional).
        :return: (long), the sequenceId of the added item, or -1 if the add failed.

def add(self, item, overflow_policy=OVERFLOW_POLICY_OVERWRITE):
        """
        Adds the specified item to the tail of the Ringbuffer. If there is no space in the Ringbuffer, the action is
        determined by overflow policy as :const:`OVERFLOW_POLICY_OVERWRITE` or :const:`OVERFLOW_POLICY_FAIL`.

        :param item: (object), the specified item to be added.
        :param overflow_policy: (int), the OverflowPolicy to be used when there is no space (optional).
        :return: (long), the sequenceId of the added item, or -1 if the add failed.
        """
        return self._encode_invoke(ringbuffer_add_codec, value=self._to_data(item), overflow_policy=overflow_policy)