blob: ef152a8963242d1d6825969ccb6c347fa8c52836 [file] [log] [blame]
Vitaly Buka4615e0d2015-10-14 15:35:12 -07001// Copyright 2015 The Weave Authors. All rights reserved.
Alex Vakulenkoeedf3be2015-05-13 17:52:02 -07002// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
Vitaly Buka912b6982015-07-06 11:13:03 -07005#ifndef LIBWEAVE_SRC_NOTIFICATION_NOTIFICATION_CHANNEL_H_
6#define LIBWEAVE_SRC_NOTIFICATION_NOTIFICATION_CHANNEL_H_
Alex Vakulenkoeedf3be2015-05-13 17:52:02 -07007
8#include <string>
9
10namespace base {
11class DictionaryValue;
12} // namespace base
13
Vitaly Bukab6f015a2015-07-09 14:59:23 -070014namespace weave {
Alex Vakulenkoeedf3be2015-05-13 17:52:02 -070015
16class NotificationDelegate;
17
18class NotificationChannel {
19 public:
Vitaly Buka3bfb13d2015-11-24 14:46:13 -080020 virtual ~NotificationChannel() {}
Alex Vakulenkoeedf3be2015-05-13 17:52:02 -070021
22 virtual std::string GetName() const = 0;
Alex Vakulenko6b028ae2015-05-29 09:38:59 -070023 virtual bool IsConnected() const = 0;
Alex Vakulenkoeedf3be2015-05-13 17:52:02 -070024 virtual void AddChannelParameters(base::DictionaryValue* channel_json) = 0;
25
26 virtual void Start(NotificationDelegate* delegate) = 0;
27 virtual void Stop() = 0;
28};
29
Vitaly Bukab6f015a2015-07-09 14:59:23 -070030} // namespace weave
Alex Vakulenkoeedf3be2015-05-13 17:52:02 -070031
Vitaly Buka912b6982015-07-06 11:13:03 -070032#endif // LIBWEAVE_SRC_NOTIFICATION_NOTIFICATION_CHANNEL_H_