code: def __update_existing(self, msg, req):
          
          req._messages.append(msg)
  
          payload = msg[M_PAYLOAD]
          if msg[M_TYPE] in _RSP_TYPE_CREATION:
              if payload[P_RESOURCE] == R_SUB:
                  # Add callback for feeddata
                  with self.__pending_subs:
                      if msg[M_CLIENTREF] in self.__pending_subs:
                          callback = self.__pending_subs.pop(msg[M_CLIENTREF])
                          if payload[P_POINT_TYPE] == R_FEED:
                              self.__callbacks[_CB_FEED][payload[P_POINT_ID]] = callback
                          else:
                              logger.warning('Subscription intended to feed is actually control: %s', payload[P_POINT_ID])
  
              elif payload[P_RESOURCE] == R_CONTROL:
                  with self.__pending_controls:
                      if msg[M_CLIENTREF] in self.__pending_controls:
                          # callbacks by thing
                          entity_point_callbacks = self.__callbacks[_CB_CONTROL].setdefault(payload[P_ENTITY_LID], {})
                          # callback by thing and point
                          entity_point_callbacks[payload[P_LID]] = self.__pending_controls.pop(msg[M_CLIENTREF])
  
          elif msg[M_TYPE] == E_RECENTDATA:
              samples = []
              for sample in payload[P_SAMPLES]:
                  data, mime, time = self.__decode_data_time(sample)
                  samples.append({'data': data, 'mime': mime, 'time': time})
              self.__fire_callback(_CB_RECENT_DATA, {'c': msg[M_CLIENTREF],
                                                     'samples': samples})
docs: Propagate changes based on type of message. MUST be called within self.__requests lock. Performs additional
             actions when solicited messages arrive.