1// Copyright 2015 The Weave Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef LIBWEAVE_SRC_NOTIFICATION_NOTIFICATION_DELEGATE_H_
6#define LIBWEAVE_SRC_NOTIFICATION_NOTIFICATION_DELEGATE_H_
7
8#include <memory>
9#include <string>
10
11#include <base/values.h>
12
13namespace weave {
14
15class NotificationDelegate {
16 public:
17  virtual void OnConnected(const std::string& channel_name) = 0;
18  virtual void OnDisconnected() = 0;
19  virtual void OnPermanentFailure() = 0;
20  // Called when a new command is sent via the notification channel.
21  virtual void OnCommandCreated(const base::DictionaryValue& command,
22                                const std::string& channel_name) = 0;
23  // Called when DEVICE_DELETED notification is received.
24  virtual void OnDeviceDeleted(const std::string& cloud_id) = 0;
25
26 protected:
27  virtual ~NotificationDelegate() {}
28};
29
30}  // namespace weave
31
32#endif  // LIBWEAVE_SRC_NOTIFICATION_NOTIFICATION_DELEGATE_H_
33