Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3802)

Unified Diff: chrome/browser/local_discovery/privetv3_session.h

Issue 383023002: Partial setup flow with unittest. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 1d943f2272a4dfe151fbc9ccf3c641023f15c10b..9a96c50ba693122c17ba11a719c182b115812610 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 "chrome/browser/local_discovery/privet_url_fetcher.h"
namespace base {
class DictionaryValue;
@@ -20,22 +21,18 @@ class PrivetHTTPClient;
// Manages secure communication between browser and local Privet device.
class PrivetV3Session {
- public:
- typedef base::Callback<
- void(bool success, const base::DictionaryValue& response)>
- RequestCallback;
+ private:
+ class FetcherDelegate;
+ public:
// Delegate to be implemented by client code.
class Delegate {
public:
- typedef base::Callback<void(bool confirm)> ConfirmationCallback;
-
virtual ~Delegate();
// Called when client code should prompt user to check |confirmation_code|.
virtual void OnSetupConfirmationNeeded(
- const std::string& confirmation_code,
- const ConfirmationCallback& callback) = 0;
+ const std::string& confirmation_code) = 0;
// Called when session successfully establish and client code my call
// |CreateRequest| method.
@@ -48,8 +45,18 @@ class PrivetV3Session {
// Represents request in progress using secure session.
class Request {
public:
+ Request();
virtual ~Request();
- virtual void Start() = 0;
+
+ virtual std::string GetName() = 0;
+ virtual const base::DictionaryValue& GetInput() = 0;
+ virtual void OnError(PrivetURLFetcher::ErrorType error) = 0;
+ virtual void OnParsedJson(const base::DictionaryValue& value,
+ bool has_error) = 0;
+
+ private:
+ friend class PrivetV3Session;
+ scoped_ptr<FetcherDelegate> fetcher_delegate_;
};
PrivetV3Session(scoped_ptr<PrivetHTTPClient> client, Delegate* delegate);
@@ -59,13 +66,16 @@ class PrivetV3Session {
// |OnSessionEstablished|.
void Start();
+ void ConfirmCode();
+
// Create a single /privet/v3/session/call request.
- // Must be called only after receiving |OnSessionEstablished|.
- scoped_ptr<Request> CreateRequest(const std::string& api_name,
- const base::DictionaryValue& request,
- const RequestCallback& callback);
+ void StartRequest(Request* request);
private:
+ Delegate* delegate_;
+ scoped_ptr<PrivetHTTPClient> client_;
+ bool code_confirmed_;
+ base::WeakPtrFactory<PrivetV3Session> weak_ptr_factory_;
DISALLOW_COPY_AND_ASSIGN(PrivetV3Session);
};
« no previous file with comments | « chrome/browser/local_discovery/privet_url_fetcher.cc ('k') | chrome/browser/local_discovery/privetv3_session.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698