Отправка уведомления фактическому абоненту. - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть API currentFuelPrice () , и этот API поддерживается singleton . В своем коде я сделал синглтон. Допустим, два вызывающих абонента А1 и А2 добавлены в качестве наблюдателя. Теперь, когда A1 вызывает CurrentFuelPrice (). oncurrentFuelPrice () получено. Поскольку он одноэлементный, он отправит NotifyFuelCurrentPrice как вызывающему, так и А2. Как я могу не узнать фактического абонента то есть. A1 только.

Ниже мой код.

//single ton
FuelService* FuelService::Create() {
  return (!m_instanceSingleton) ?
        m_instanceSingleton = new FuelService() : 
        m_instanceSingleton;
}

//Register to service 
FuelService::FuelService()
    : FuelProxy(),
      Listener(Listener_path)
 {
  registerListener((IOnFuel*)this);
  fuel_obj = FuelProxy::getInstance();
}

FuelService::~FuelService() {}

// adding observer
void FuelService::AddObserver(
    FuelProxy::FuelNotification* observer) {
  observer.push_back(observer);
}

// calling the API
void FuelService::CurrentFuelPrice(const uint32_t& sessionId) {
  fuel_obj->currentFuelPrice(sessionId);
}

// Getting response send back to caller
void FuelService::oncurrentFuelPrice(const uint32_t& sessionId,const uint32_t&price) {
    std::vector<FuelNotification*>::iterator it = observer.begin();
  for (; it != observer.end(); ++it)
    (*it)->NotifyFuelCurrentPrice(price);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...