blob: 45267ded2c5fca19863175128c7ae713edc9b5a5 [file] [log] [blame]
Alex Vakulenkoeedf3be2015-05-13 17:52:02 -07001// Copyright 2015 The Chromium OS 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 BUFFET_NOTIFICATION_NOTIFICATION_CHANNEL_H_
6#define BUFFET_NOTIFICATION_NOTIFICATION_CHANNEL_H_
7
8#include <string>
9
10namespace base {
11class DictionaryValue;
12} // namespace base
13
14namespace buffet {
15
16class NotificationDelegate;
17
18class NotificationChannel {
19 public:
20 virtual ~NotificationChannel() = default;
21
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
30} // namespace buffet
31
32#endif // BUFFET_NOTIFICATION_NOTIFICATION_CHANNEL_H_