def add_listener(self, include_value=False, item_added_func=None, item_removed_func=None):
request = list_add_listener_codec.encode_request(self.name, include_value, False)<EOL>def handle_event_item(item, uuid, event_type):<EOL><INDENT>item = item if include_value else None<EOL>member = self._client.cluster.get_member_by_uuid(uuid)<EOL>item_event = ItemEvent(self.name, item, event_type, member, self._to_object)<EOL>if event_type == ItemEventType.added:<EOL><INDENT>if item_added_func:<EOL><INDENT>item_added_func(item_event)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>if item_removed_func:<EOL><INDENT>item_removed_func(item_event)<EOL><DEDENT><DEDENT><DEDENT>return self._start_listening(request,<EOL>lambda m: list_add_listener_codec.handle(m, handle_event_item),<EOL>lambda r: list_add_listener_codec.decode_response(r)['<STR_LIT>'],<EOL>self.partition_key)<EOL>
Adds an item listener for this list. Listener will be notified for all list add/remove events.

:param include_value: (bool), whether received events include the updated item or not (optional).
:param item_added_func: Function to be called when an item is added to this list (optional).
:param item_removed_func: Function to be called when an item is deleted from this list (optional).
:return: (str), a registration id which is used as a key to remove the listener.