| Index: components/copresence/copresence_manager_impl.cc
|
| diff --git a/components/copresence/copresence_manager_impl.cc b/components/copresence/copresence_manager_impl.cc
|
| index 63ad503225d9b58221c1440ea3205eb5c0de482c..de6d7e29051d148be08f9d1781350c559a15238e 100644
|
| --- a/components/copresence/copresence_manager_impl.cc
|
| +++ b/components/copresence/copresence_manager_impl.cc
|
| @@ -8,9 +8,7 @@
|
|
|
| #include "base/bind.h"
|
| #include "base/strings/stringprintf.h"
|
| -#include "base/time/time.h"
|
| #include "base/timer/timer.h"
|
| -#include "components/copresence/copresence_state_impl.h"
|
| #include "components/copresence/handlers/directive_handler_impl.h"
|
| #include "components/copresence/handlers/gcm_handler_impl.h"
|
| #include "components/copresence/proto/rpcs.pb.h"
|
| @@ -35,12 +33,7 @@
|
| // This callback gets cancelled when we are destroyed.
|
| base::Unretained(this))),
|
| init_failed_(false),
|
| - state_(new CopresenceStateImpl),
|
| - directive_handler_(new DirectiveHandlerImpl(
|
| - // The directive handler and its descendants
|
| - // will be destructed before the CopresenceState instance.
|
| - base::Bind(&CopresenceStateImpl::UpdateDirectives,
|
| - base::Unretained(state_.get())))),
|
| + directive_handler_(new DirectiveHandlerImpl),
|
| poll_timer_(new base::RepeatingTimer<CopresenceManagerImpl>),
|
| audio_check_timer_(new base::RepeatingTimer<CopresenceManagerImpl>) {
|
| DCHECK(delegate_);
|
| @@ -53,17 +46,12 @@
|
| directive_handler_.get()));
|
|
|
| rpc_handler_.reset(new RpcHandler(delegate,
|
| - state_.get(),
|
| directive_handler_.get(),
|
| gcm_handler_.get()));
|
| }
|
|
|
| CopresenceManagerImpl::~CopresenceManagerImpl() {
|
| whispernet_init_callback_.Cancel();
|
| -}
|
| -
|
| -CopresenceState* CopresenceManagerImpl::state() {
|
| - return state_.get();
|
| }
|
|
|
| // Returns false if any operations were malformed.
|
| @@ -91,9 +79,11 @@
|
| if (success) {
|
| DVLOG(3) << "Whispernet initialized successfully.";
|
|
|
| + // We destroy |directive_handler_| before |rpc_handler_|, hence passing
|
| + // in |rpc_handler_|'s pointer is safe here.
|
| directive_handler_->Start(delegate_->GetWhispernetClient(),
|
| - base::Bind(&CopresenceManagerImpl::ReceivedTokens,
|
| - base::Unretained(this)));
|
| + base::Bind(&RpcHandler::ReportTokens,
|
| + base::Unretained(rpc_handler_.get())));
|
|
|
| // Start up timers.
|
| poll_timer_->Start(FROM_HERE,
|
| @@ -106,21 +96,6 @@
|
| } else {
|
| LOG(ERROR) << "Whispernet initialization failed!";
|
| init_failed_ = true;
|
| - }
|
| -}
|
| -
|
| -void CopresenceManagerImpl::ReceivedTokens(
|
| - const std::vector<AudioToken>& tokens) {
|
| - rpc_handler_->ReportTokens(tokens);
|
| -
|
| - // Update the CopresenceState.
|
| - for (const AudioToken audio_token : tokens) {
|
| - DVLOG(3) << "Heard token: " << audio_token.token;
|
| - ReceivedToken token(
|
| - audio_token.token,
|
| - audio_token.audible ? AUDIO_AUDIBLE_DTMF : AUDIO_ULTRASOUND_PASSBAND,
|
| - base::Time::Now());
|
| - state_->UpdateReceivedToken(token);
|
| }
|
| }
|
|
|
|
|