| Index: components/copresence/rpc/rpc_handler.h
|
| diff --git a/components/copresence/rpc/rpc_handler.h b/components/copresence/rpc/rpc_handler.h
|
| index 30215225ba83f70d59061892001ee526e85fa68f..32213671e209edf4033ec04b33faa2032b776052 100644
|
| --- a/components/copresence/rpc/rpc_handler.h
|
| +++ b/components/copresence/rpc/rpc_handler.h
|
| @@ -9,17 +9,18 @@
|
| #include <string>
|
| #include <vector>
|
|
|
| -#include "base/callback.h"
|
| +#include "base/callback_forward.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "components/copresence/proto/enums.pb.h"
|
| #include "components/copresence/public/copresence_delegate.h"
|
| -#include "components/copresence/public/whispernet_client.h"
|
| -#include "components/copresence/rpc/http_post.h"
|
| #include "components/copresence/timed_map.h"
|
|
|
| namespace copresence {
|
|
|
| +struct AudioToken;
|
| +class CopresenceDelegate;
|
| class DirectiveHandler;
|
| +class HttpPost;
|
| class ReportRequest;
|
| class RequestHeader;
|
| class SubscribedMessage;
|
| @@ -33,9 +34,9 @@ class RpcHandler {
|
| // Report rpc name to send to Apiary.
|
| static const char kReportRequestRpcName[];
|
|
|
| - // Constructor. |delegate| is owned by the caller,
|
| - // and must be valid as long as the RpcHandler exists.
|
| - explicit RpcHandler(CopresenceDelegate* delegate);
|
| + // Constructor. |delegate| and |directive_handler|
|
| + // are owned by the caller and must outlive the RpcHandler.
|
| + RpcHandler(CopresenceDelegate* delegate, DirectiveHandler* directive_handler);
|
|
|
| virtual ~RpcHandler();
|
|
|
| @@ -64,10 +65,6 @@ class RpcHandler {
|
| // Uses all active auth tokens (if any).
|
| void ReportTokens(const std::vector<AudioToken>& tokens);
|
|
|
| - // Create the directive handler and connect it to
|
| - // the whispernet client specified by the delegate.
|
| - void ConnectToWhispernet();
|
| -
|
| private:
|
| // An HttpPost::ResponseCallback along with an HttpPost object to be deleted.
|
| // Arguments:
|
| @@ -85,7 +82,7 @@ class RpcHandler {
|
| // string: The auth token to pass with the request.
|
| // MessageLite: Contents of POST request to be sent. This needs to be
|
| // a (scoped) pointer to ease handling of the abstract MessageLite class.
|
| - // ResponseCallback: Receives the response to the request.
|
| + // PostCleanupCallback: Receives the response to the request.
|
| typedef base::Callback<void(net::URLRequestContextGetter*,
|
| const std::string&,
|
| const std::string&,
|
| @@ -140,19 +137,16 @@ class RpcHandler {
|
| scoped_ptr<google::protobuf::MessageLite> request_proto,
|
| const PostCleanupCallback& callback);
|
|
|
| - // This method receives the request to encode a token and forwards it to
|
| - // whispernet, setting the samples return callback to samples_callback.
|
| - void AudioDirectiveListToWhispernetConnector(
|
| - const std::string& token,
|
| - AudioType type,
|
| - const WhispernetClient::SamplesCallback& samples_callback);
|
| + // These belong to the caller.
|
| + CopresenceDelegate* delegate_;
|
| + DirectiveHandler* directive_handler_;
|
|
|
| - CopresenceDelegate* delegate_; // Belongs to the caller.
|
| TimedMap<std::string, bool> invalid_audio_token_cache_;
|
| +
|
| + // TODO(ckehoe): Allow passing this into the constructor for testing.
|
| PostCallback server_post_callback_;
|
|
|
| std::map<std::string, std::string> device_id_by_auth_token_;
|
| - scoped_ptr<DirectiveHandler> directive_handler_;
|
| std::set<HttpPost*> pending_posts_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(RpcHandler);
|
|
|