| Index: chrome/browser/local_discovery/privetv3_session.h
|
| diff --git a/chrome/browser/local_discovery/privetv3_session.h b/chrome/browser/local_discovery/privetv3_session.h
|
| index c24f7abfcf6592b27515001a46e79e7ec68412dd..d03f9b6d3d01a7311a27b72bf1194ffdd9117b30 100644
|
| --- a/chrome/browser/local_discovery/privetv3_session.h
|
| +++ b/chrome/browser/local_discovery/privetv3_session.h
|
| @@ -9,6 +9,7 @@
|
|
|
| #include "base/callback.h"
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "base/memory/scoped_vector.h"
|
| #include "chrome/browser/local_discovery/privet_url_fetcher.h"
|
| #include "chrome/common/extensions/api/gcd_private.h"
|
|
|
| @@ -26,28 +27,39 @@ class PrivetV3Session {
|
| class FetcherDelegate;
|
|
|
| public:
|
| - // Delegate to be implemented by client code.
|
| - class Delegate {
|
| - public:
|
| - virtual ~Delegate();
|
| + typedef extensions::api::gcd_private::PairingType PairingType;
|
| + typedef extensions::api::gcd_private::Status Result;
|
|
|
| - // Called when client code should prompt user to check |confirmation_code|.
|
| - virtual void OnSetupConfirmationNeeded(
|
| - const std::string& confirmation_code,
|
| - extensions::api::gcd_private::ConfirmationType confirmation_type) = 0;
|
| + typedef base::Callback<
|
| + void(Result result, const std::vector<PairingType>& types)> InitCallback;
|
|
|
| - virtual void OnSessionStatus(
|
| - extensions::api::gcd_private::Status status) = 0;
|
| - };
|
| + typedef base::Callback<void(Result result)> ResultCallback;
|
| + typedef base::Callback<void(Result result,
|
| + const base::DictionaryValue& response)>
|
| + MessageCallback;
|
| +
|
| + explicit PrivetV3Session(scoped_ptr<PrivetHTTPClient> client);
|
| + ~PrivetV3Session();
|
| +
|
| + // Initialized session.
|
| + void Init(const InitCallback& callback);
|
| +
|
| + void StartPairing(PairingType pairing_type, const ResultCallback& callback);
|
| +
|
| + void ConfirmCode(const std::string& code, const ResultCallback& callback);
|
| +
|
| + // Create a single /privet/v3/session/call request.
|
| + void SendMessage(const std::string& api,
|
| + const base::DictionaryValue& input,
|
| + const MessageCallback& callback);
|
|
|
| + private:
|
| // Represents request in progress using secure session.
|
| class Request {
|
| public:
|
| Request();
|
| virtual ~Request();
|
|
|
| - virtual std::string GetName() = 0;
|
| - virtual const base::DictionaryValue& GetInput() = 0;
|
| virtual void OnError() = 0;
|
| virtual void OnParsedJson(const base::DictionaryValue& value,
|
| bool has_error) = 0;
|
| @@ -57,24 +69,12 @@ class PrivetV3Session {
|
| scoped_ptr<FetcherDelegate> fetcher_delegate_;
|
| };
|
|
|
| - PrivetV3Session(scoped_ptr<PrivetHTTPClient> client, Delegate* delegate);
|
| - ~PrivetV3Session();
|
| -
|
| - // Establishes a session, will call |OnSetupConfirmationNeeded| and then
|
| - // |OnSessionEstablished|.
|
| - void Start();
|
| -
|
| - void ConfirmCode(const std::string& code);
|
| -
|
| - // Create a single /privet/v3/session/call request.
|
| - void StartRequest(Request* request);
|
| -
|
| - private:
|
| - void ConfirmFakeCode();
|
| + void RunCallback(const base::Closure& callback);
|
| + void DeleteFetcher(const FetcherDelegate* fetcher);
|
|
|
| - Delegate* delegate_;
|
| scoped_ptr<PrivetHTTPClient> client_;
|
| bool code_confirmed_;
|
| + ScopedVector<FetcherDelegate> fetchers_;
|
| base::WeakPtrFactory<PrivetV3Session> weak_ptr_factory_;
|
| DISALLOW_COPY_AND_ASSIGN(PrivetV3Session);
|
| };
|
|
|