Lines Matching refs:subscriber
128 auto subscriber = std::make_shared<Subscriber>(subscribeId, sess, keyOption);
130 auto ret = AddKeyGestureSubscriber(subscriber, keyOption);
136 auto ret = AddSubscriber(subscriber, keyOption, true);
186 std::shared_ptr<Subscriber> subscriber, std::shared_ptr<KeyOption> keyOption)
189 CHKPR(subscriber, RET_ERR);
190 CHKPR(subscriber->sess_, RET_ERR);
191 subscriber->timerId_ = keyGestureMgr_.AddKeyGesture(subscriber->sess_->GetPid(), keyOption,
192 [this, subscriber](std::shared_ptr<KeyEvent> keyEvent) {
193 NotifySubscriber(keyEvent, subscriber);
195 if (subscriber->timerId_ < 0) {
196 MMI_HILOGE("AddKeyGesture fail, error:%{public}d", subscriber->timerId_);
199 MMI_HILOGI("Handler(%{public}d) of key gesture was added", subscriber->timerId_);
203 iter.second.push_back(subscriber);
207 keyGestures_[keyOption] = { subscriber };
218 auto subscriber = *innerIter;
220 if ((subscriber->id_ != subscribeId) || (subscriber->sess_ != sess)) {
223 MMI_HILOGI("Removing handler(%{public}d) of key gesture", subscriber->timerId_);
224 keyGestureMgr_.RemoveKeyGesture(subscriber->timerId_);
225 auto option = subscriber->keyOption_;
275 void KeySubscriberHandler::DeleteShortcutId(std::shared_ptr<Subscriber> subscriber)
277 if (subscriber->isSystem) {
278 UnregisterSystemKey(subscriber->shortcutId_);
280 UnregisterHotKey(subscriber->shortcutId_);
302 auto subscriber = std::make_shared<Subscriber>(subscribeId, sess, keyOption);
303 auto ret = AddSubscriber(subscriber, keyOption, false);
323 int32_t KeySubscriberHandler::AddSubscriber(std::shared_ptr<Subscriber> subscriber,
327 CHKPR(subscriber, RET_ERR);
331 CHKPR(subscriber->sess_, RET_ERR);
333 subscriber->isSystem = true;
334 subscriber->shortcutId_ = RegisterSystemKey(option, subscriber->sess_->GetPid(),
335 [this, subscriber](std::shared_ptr<KeyEvent> keyEvent) {
336 NotifySubscriber(keyEvent, subscriber);
339 subscriber->isSystem = false;
340 subscriber->shortcutId_ = RegisterHotKey(option, subscriber->sess_->GetPid(),
341 [this, subscriber](std::shared_ptr<KeyEvent> keyEvent) {
342 NotifySubscriber(keyEvent, subscriber);
345 if (subscriber->shortcutId_ < 0) {
346 MMI_HILOGE("Register shortcut fail, error:%{public}d", subscriber->shortcutId_);
347 return subscriber->shortcutId_;
352 MMI_HILOGI("Add subscriber Id:%{public}d", subscriber->id_);
353 iter.second.push_back(std::move(subscriber));
358 MMI_HILOGI("Add subscriber Id:%{public}d", subscriber->id_);
359 subscriberMap_[option] = {subscriber};
627 auto subscriber = *inner;
628 if (subscriber->sess_ == sess) {
629 MMI_HILOGI("Removing key-gesture handler(%{public}d) on subscriber(%{public}d) dying",
630 subscriber->timerId_, sess->GetPid());
631 keyGestureMgr_.RemoveKeyGesture(subscriber->timerId_);
632 auto option = subscriber->keyOption_;
634 "finalKeyDownDuration:%{public}d, pid:%{public}d", subscriber->id_, option->GetFinalKey(),
726 for (auto &subscriber : subscribers) {
727 CHKPC(subscriber);
728 auto sess = subscriber->sess_;
738 NotifySubscriber(keyEvent, subscriber);
749 for (auto &subscriber : subscribers) {
750 CHKPC(subscriber);
751 auto sess = subscriber->sess_;
756 if (!AddTimer(subscriber, keyEvent)) {
757 MMI_HILOGE("Add time failed, subscriberId:%{public}d", subscriber->id_);
770 for (auto &subscriber : subscribers) {
771 CHKPC(subscriber);
772 auto sess = subscriber->sess_;
775 HandleKeyUpWithDelay(keyEvent, subscriber);
782 const std::shared_ptr<Subscriber> &subscriber) __attribute__((no_sanitize("cfi")))
786 CHKPV(subscriber);
789 CHKPV(subscriber->keyOption_);
790 KEY_SHORTCUT_MGR->MarkShortcutConsumed(*subscriber->keyOption_);
798 SubscriberNotifyNap(subscriber);
801 auto sess = subscriber->sess_;
804 pkt << fd << subscriber->id_;
806 MMI_HILOGI("Notify subscriber id:%{public}d, pid:%{public}d", subscriber->id_, sess->GetPid());
809 MMI_HILOGI("Notify subscriber id:%{public}d, keycode:%{private}d, pid:%{public}d",
810 subscriber->id_, keyEvent->GetKeyCode(), sess->GetPid());
812 MMI_HILOGI("Notify subscriber id:%{public}d, keycode:%{private}d, pid:%{public}d",
813 subscriber->id_, keyEvent->GetKeyCode(), sess->GetPid());
817 MMI_HILOGE("Packet write dispatch subscriber failed");
821 MMI_HILOGE("Leave, server dispatch subscriber failed");
826 bool KeySubscriberHandler::AddTimer(const std::shared_ptr<Subscriber> &subscriber,
831 CHKPF(subscriber);
833 if (subscriber->timerId_ >= 0) {
838 auto &keyOption = subscriber->keyOption_;
851 std::weak_ptr<Subscriber> weakSubscriber = subscriber;
852 subscriber->timerId_ = TimerMgr->AddTimer(duration, 1, [this, weakSubscriber] () {
854 auto subscriber = weakSubscriber.lock();
855 CHKPV(subscriber);
856 OnTimer(subscriber);
859 if (subscriber->timerId_ < 0) {
863 subscriber->keyEvent_ = keyEvent_;
867 subscriber->id_, duration, subscriber->timerId_);
874 MMI_HILOGD("Clear subscriber timer size:%{public}zu", subscribers.size());
875 for (auto &subscriber : subscribers) {
876 CHKPC(subscriber);
877 ClearTimer(subscriber);
881 void KeySubscriberHandler::ClearTimer(const std::shared_ptr<Subscriber> &subscriber)
884 CHKPV(subscriber);
886 if (subscriber->timerId_ < 0) {
887 MMI_HILOGD("Leave, subscribeId:%{public}d, null timerId < 0", subscriber->id_);
891 TimerMgr->RemoveTimer(subscriber->timerId_);
892 auto timerId = subscriber->timerId_;
893 subscriber->keyEvent_.reset();
894 subscriber->timerId_ = -1;
896 MMI_HILOGD("subscribeId:%{public}d, timerId:%{public}d", subscriber->id_, timerId);
899 void KeySubscriberHandler::OnTimer(const std::shared_ptr<Subscriber> subscriber)
902 CHKPV(subscriber);
903 subscriber->timerId_ = -1;
904 if (subscriber->keyEvent_ == nullptr) {
905 MMI_HILOGE("Leave, subscriber->keyEvent is nullptr, subscribeId:%{public}d", subscriber->id_);
909 NotifySubscriber(subscriber->keyEvent_, subscriber);
910 subscriber->keyEvent_.reset();
911 MMI_HILOGD("subscribeId:%{public}d", subscriber->id_);
969 void KeySubscriberHandler::SubscriberNotifyNap(const std::shared_ptr<Subscriber> subscriber)
972 CHKPV(subscriber);
979 auto sess = subscriber->sess_;
1047 for (auto &subscriber : subscribers) {
1048 PrintKeyUpLog(subscriber);
1049 ClearTimer(subscriber);
1150 const std::shared_ptr<Subscriber> &subscriber)
1152 auto keyUpDelay = subscriber->keyOption_->GetFinalKeyUpDelay();
1154 NotifySubscriber(keyEvent, subscriber);
1156 if (!AddTimer(subscriber, keyEvent)) {
1174 void KeySubscriberHandler::PrintKeyUpLog(const std::shared_ptr<Subscriber> &subscriber)
1176 CHKPV(subscriber);
1177 auto &keyOption = subscriber->keyOption_;
1181 subscriber->id_, keyOption->GetFinalKey(), keyOption->IsFinalKeyDown() ? "true" : "false",
1226 void KeySubscriberHandler::DumpSubscriber(int32_t fd, std::shared_ptr<Subscriber> subscriber) const
1228 CHKPV(subscriber);
1229 SessionPtr session = subscriber->sess_;
1231 std::shared_ptr<KeyOption> keyOption = subscriber->keyOption_;
1244 subscriber->id_, session->GetPid(), session->GetUid(), session->GetFd(),