| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef JINGLE_NOTIFIER_LISTENER_NON_BLOCKING_PUSH_CLIENT_OBSERVER_H_ |
| #define JINGLE_NOTIFIER_LISTENER_NON_BLOCKING_PUSH_CLIENT_OBSERVER_H_ |
| |
| #include "jingle/notifier/listener/notification_defines.h" |
| |
| namespace notifier { |
| |
| enum NotificationsDisabledReason { |
| // There is an underlying transient problem (e.g., network- or |
| // XMPP-related). |
| TRANSIENT_NOTIFICATION_ERROR, |
| DEFAULT_NOTIFICATION_ERROR = TRANSIENT_NOTIFICATION_ERROR, |
| // Our credentials have been rejected. |
| NOTIFICATION_CREDENTIALS_REJECTED, |
| // No error (useful for avoiding keeping a separate bool for |
| // notifications enabled/disabled). |
| NO_NOTIFICATION_ERROR |
| }; |
| |
| // A PushClientObserver is notified when notifications are enabled or |
| // disabled, and when a notification is received. |
| class PushClientObserver { |
| protected: |
| virtual ~PushClientObserver(); |
| |
| public: |
| // Called when notifications are enabled. |
| virtual void OnNotificationsEnabled() = 0; |
| |
| // Called when notifications are disabled, with the reason (not |
| // equal to NO_ERROR) in |reason|. |
| virtual void OnNotificationsDisabled( |
| NotificationsDisabledReason reason) = 0; |
| |
| // Called when a notification is received. The details of the |
| // notification are in |notification|. |
| virtual void OnIncomingNotification(const Notification& notification) = 0; |
| |
| // Called when a ping response is received. Default implementation does |
| // nothing. |
| virtual void OnPingResponse(); |
| }; |
| |
| } // namespace notifier |
| |
| #endif // JINGLE_NOTIFIER_LISTENER_NON_BLOCKING_PUSH_CLIENT_OBSERVER_H_ |