def add_entry_listener(self, include_value=False, key=None, added_func=None, removed_func=None, clear_all_func=None):
if key:<EOL><INDENT>key_data = self._to_data(key)<EOL>request = multi_map_add_entry_listener_to_key_codec.encode_request(name=self.name, key=key_data,<EOL>include_value=include_value,<EOL>local_only=False)<EOL><DEDENT>else:<EOL><INDENT>request = multi_map_add_entry_listener_codec.encode_request(name=self.name, include_value=include_value,<EOL>local_only=False)<EOL><DEDENT>def handle_event_entry(**_kwargs):<EOL><INDENT>event = EntryEvent(self._to_object, **_kwargs)<EOL>if event.event_type == EntryEventType.added and added_func:<EOL><INDENT>added_func(event)<EOL><DEDENT>elif event.event_type == EntryEventType.removed and removed_func:<EOL><INDENT>removed_func(event)<EOL><DEDENT>elif event.event_type == EntryEventType.clear_all and clear_all_func:<EOL><INDENT>clear_all_func(event)<EOL><DEDENT><DEDENT>return self._start_listening(request,<EOL>lambda m: multi_map_add_entry_listener_codec.handle(m,<EOL>handle_event_entry),<EOL>lambda r: multi_map_add_entry_listener_codec.decode_response(r)[<EOL>'<STR_LIT>'])<EOL>
Adds an entry listener for this multimap. The listener will be notified for all multimap add/remove/clear-all
events.

:param include_value: (bool), whether received event should include the value or not (optional).
:param key: (object), key for filtering the events (optional).
:param added_func: Function to be called when an entry is added to map (optional).
:param removed_func: Function to be called when an entry is removed_func from map (optional).
:param clear_all_func: Function to be called when entries are cleared from map (optional).
:return: (str), a registration id which is used as a key to remove the listener.