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