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

Unified Diff: blimp/client/core/geolocation/geolocation_feature.cc

Issue 2624903006: Remove all blimp client code. (Closed)
Patch Set: Update buildbot configuration Created 3 years, 11 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: blimp/client/core/geolocation/geolocation_feature.cc
diff --git a/blimp/client/core/geolocation/geolocation_feature.cc b/blimp/client/core/geolocation/geolocation_feature.cc
deleted file mode 100644
index 012e0fdce8f8c040270bf8b1816249bfd34887e2..0000000000000000000000000000000000000000
--- a/blimp/client/core/geolocation/geolocation_feature.cc
+++ /dev/null
@@ -1,156 +0,0 @@
-// Copyright 2016 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "blimp/client/core/geolocation/geolocation_feature.h"
-
-#include <memory>
-#include <string>
-#include <utility>
-
-#include "blimp/common/create_blimp_message.h"
-#include "blimp/common/proto/blimp_message.pb.h"
-#include "device/geolocation/geoposition.h"
-#include "device/geolocation/location_provider.h"
-#include "net/base/net_errors.h"
-
-namespace blimp {
-namespace client {
-
-GeolocationFeature::GeolocationFeature(
- std::unique_ptr<device::LocationProvider> location_provider)
- : location_provider_(std::move(location_provider)) {
- location_provider_->SetUpdateCallback(base::Bind(
- &GeolocationFeature::OnLocationUpdate, base::Unretained(this)));
-}
-
-GeolocationFeature::~GeolocationFeature() {}
-
-void GeolocationFeature::set_outgoing_message_processor(
- std::unique_ptr<BlimpMessageProcessor> processor) {
- outgoing_message_processor_ = std::move(processor);
- am_sending_message_ = false;
-}
-
-void GeolocationFeature::ProcessMessage(
- std::unique_ptr<BlimpMessage> message,
- const net::CompletionCallback& callback) {
- DCHECK_EQ(BlimpMessage::kGeolocation, message->feature_case());
-
- int result = net::OK;
- const GeolocationMessage& geolocation_message = message->geolocation();
- switch (geolocation_message.type_case()) {
- case GeolocationMessage::kSetInterestLevel:
- SetInterestLevel(geolocation_message.set_interest_level().level());
- break;
- case GeolocationMessage::kRequestRefresh:
- location_provider_->OnPermissionGranted();
- break;
- case GeolocationMessage::kCoordinates:
- case GeolocationMessage::kError:
- case GeolocationMessage::TYPE_NOT_SET:
- result = net::ERR_UNEXPECTED;
- break;
- }
-
- if (!callback.is_null()) {
- callback.Run(result);
- }
-}
-
-void GeolocationFeature::OnLocationUpdate(
- const device::LocationProvider* location_provider,
- const device::Geoposition& position) {
- DCHECK_EQ(location_provider_.get(), location_provider);
-
- if (!am_sending_message_) {
- switch (position.error_code) {
- case device::Geoposition::ERROR_CODE_NONE:
- SendGeolocationPositionMessage(position);
- break;
- case device::Geoposition::ErrorCode::ERROR_CODE_PERMISSION_DENIED:
- SendGeolocationErrorMessage(GeolocationErrorMessage::PERMISSION_DENIED,
- position.error_message);
- break;
- case device::Geoposition::ErrorCode::ERROR_CODE_POSITION_UNAVAILABLE:
- SendGeolocationErrorMessage(
- GeolocationErrorMessage::POSITION_UNAVAILABLE,
- position.error_message);
- break;
- case device::Geoposition::ErrorCode::ERROR_CODE_TIMEOUT:
- SendGeolocationErrorMessage(GeolocationErrorMessage::TIMEOUT,
- position.error_message);
- break;
- }
- } else {
- need_to_send_message_ = true;
- }
-}
-
-void GeolocationFeature::SetInterestLevel(
- GeolocationSetInterestLevelMessage::Level level) {
- switch (level) {
- case GeolocationSetInterestLevelMessage::HIGH_ACCURACY:
- location_provider_->StartProvider(true);
- break;
- case GeolocationSetInterestLevelMessage::LOW_ACCURACY:
- location_provider_->StartProvider(false);
- break;
- case GeolocationSetInterestLevelMessage::NO_INTEREST:
- location_provider_->StopProvider();
- break;
- }
-}
-
-void GeolocationFeature::SendGeolocationPositionMessage(
- const device::Geoposition& position) {
- GeolocationMessage* geolocation_message = nullptr;
- std::unique_ptr<BlimpMessage> blimp_message =
- CreateBlimpMessage(&geolocation_message);
-
- GeolocationCoordinatesMessage* coordinates =
- geolocation_message->mutable_coordinates();
- coordinates->set_latitude(position.latitude);
- coordinates->set_longitude(position.longitude);
- coordinates->set_altitude(position.altitude);
- coordinates->set_accuracy(position.accuracy);
- coordinates->set_altitude_accuracy(position.altitude_accuracy);
- coordinates->set_heading(position.heading);
- coordinates->set_speed(position.speed);
-
- am_sending_message_ = true;
- outgoing_message_processor_->ProcessMessage(
- std::move(blimp_message),
- base::Bind(&GeolocationFeature::OnSendComplete, base::Unretained(this)));
-}
-
-void GeolocationFeature::SendGeolocationErrorMessage(
- GeolocationErrorMessage::ErrorCode error_code,
- const std::string& error_message) {
- GeolocationMessage* geolocation_message = nullptr;
- std::unique_ptr<BlimpMessage> blimp_message =
- CreateBlimpMessage(&geolocation_message);
-
- GeolocationErrorMessage* error = geolocation_message->mutable_error();
- error->set_error_code(error_code);
- error->set_error_message(error_message);
-
- am_sending_message_ = true;
- outgoing_message_processor_->ProcessMessage(
- std::move(blimp_message),
- base::Bind(&GeolocationFeature::OnSendComplete, base::Unretained(this)));
-}
-
-void GeolocationFeature::OnSendComplete(int result) {
- am_sending_message_ = false;
- if (need_to_send_message_) {
- device::Geoposition new_position = location_provider_->GetPosition();
- if (new_position.Validate()) {
- OnLocationUpdate(location_provider_.get(), new_position);
- }
- need_to_send_message_ = false;
- }
-}
-
-} // namespace client
-} // namespace blimp
« no previous file with comments | « blimp/client/core/geolocation/geolocation_feature.h ('k') | blimp/client/core/geolocation/geolocation_feature_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698