<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def advertise_endpoint(self, endpoint_description):
 """ Advertise and endpoint_description for remote discovery. If it hasn't already been a endpoint_description will be advertised via a some protocol. :param endpoint_description: an instance of EndpointDescription to advertise. Must not be None. :return: True if advertised, False if not (e.g. it's already been advertised) """

        endpoint_id = endpoint_description.get_id()
        with self._published_endpoints_lock:
            if self.get_advertised_endpoint(endpoint_id) is not None:
                return False

            advertise_result = self._advertise(endpoint_description)
            if advertise_result:
                self._add_advertised(endpoint_description, advertise_result)
                return True

            return False