• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 The Chromium 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 COMPONENTS_COPRESENCE_PUBLIC_COPRESENCE_DELEGATE_H_
6 #define COMPONENTS_COPRESENCE_PUBLIC_COPRESENCE_DELEGATE_H_
7 
8 #include <string>
9 #include <vector>
10 
11 #include "base/callback_forward.h"
12 
13 namespace net {
14 class URLRequestContextGetter;
15 }
16 
17 namespace copresence {
18 
19 class Message;
20 class WhispernetClient;
21 
22 enum CopresenceStatus { SUCCESS, FAIL };
23 
24 // Callback type to send a status.
25 typedef base::Callback<void(CopresenceStatus)> StatusCallback;
26 
27 // A delegate interface for users of Copresence.
28 class CopresenceDelegate {
29  public:
30   // This method will be called when we have subscribed messages that need to
31   // be sent to their respective apps.
32   virtual void HandleMessages(
33       const std::string& app_id,
34       const std::string& subscription_id,
35       const std::vector<Message>& message) = 0;
36 
37   virtual net::URLRequestContextGetter* GetRequestContext() const = 0;
38 
39   virtual const std::string GetPlatformVersionString() const = 0;
40 
41   virtual const std::string GetAPIKey() const = 0;
42 
43   virtual WhispernetClient* GetWhispernetClient() = 0;
44 };
45 
46 }  // namespace copresence
47 
48 #endif  // COMPONENTS_COPRESENCE_PUBLIC_COPRESENCE_DELEGATE_H_
49